В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
daryatabuewa
daryatabuewa
06.11.2020 03:46 •  Информатика

Поиогите с информатикой! Неделю решить не могу! Дам 35 б.

Только не копируйте ответы


Поиогите с информатикой! Неделю решить не могу! Дам 35 б.Только не копируйте ответы

Показать ответ
Ответ:
FreonTime
FreonTime
20.04.2023 03:56
//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками".
var
  a, b, c: array [1..100] of longint;
  i, min, n, j, t: longint;

begin
  //Читаем количество элементов в нашем массиве.
  readln(n);
 
  //Читаем массив.
  for i := 1 to n do read(a[i]);
 
  //Заполняем первую "половинку".
  for i := 1 to n div 2 do b[i] := a[i];
 
  //Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и
  //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце.
  for i := n div 2 + 1 to n do c[i - n div 2] := a[i];
 
  //Теперь отсортируем первую "половинку" методом выбора. Идея этого метода
  //основывается на том, что мы ищем минимальный среди неотсортированных элемент,
  //а затем просто swap-аем его с тем, который стоит сразу после отсортированных.
  for i := 1 to (n - 1) div 2 do
  begin
    min := i;
    for j := i + 1 to n div 2 do
      if b[min] > b[j] then
        min := j;
    if min <> i then begin
      t := b[i];
      b[i] := b[min];
      b[min] := t;
    end;
  end;
 
  //Затем вторую точно также, только стоит обратить внимание на сравнения.
  //Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом
  //будет другим.
  for i := 1 to (n - 1) div 2 do
  begin
    min := i;
    for j := i + 1 to n div 2 do
      if c[min] < c[j] then
        min := j;
    if min <> i then begin
      t := c[i];
      c[i] := c[min];
      c[min] := t;
    end;
  end;
 
  //А теперь просто по очереди выводим готовые "половинки", не забывая ставить
  //пробел после вывода каждого элемента.
  for i := 1 to n div 2 do write(b[i], ' ');
  for i := 1 to n - n div 2 do write(c[i], ' ');
end.
0,0(0 оценок)
Ответ:
marusja82
marusja82
22.12.2020 14:51
Во всех заданиях надо работать со степенями двойки.
1. Шанс вытащить какой-то конкретный шар составляет 1 из 32. Следовательно, информация о вытащенном шаре уменьшает неопределенность в 32 раза. Есть формула Хартли, которая говорит, что объем информации в битах будет численно равен логарифму по основанию два от величины уменьшения неопределенности. Но в некоторых случаях можно воспользоваться тем, что если число является степенью двойки, то значение логарифма будет являться этой степенью. У нас 32 - это два в пятой степени, поэтому значение логарифма равно 5.
ответ: Сообщение содержит 5 бит информации.
2. Выбор одного из 8 карандашей снижает неопределенность в 8 раз, восемь - это два в кубе, следовательно логарифм равен 3.
ответ: Сообщение содержит 3 бита информации.
3. Если было получено 6 бит информации, то делаем обратную операцию - возводим двойку в эту шестую степень. Получаем 64.
ответ: диапазон содержит 64 числа (от 0 до 63).
4. 16 стеллажей и в каждом 8 полок. Всего 16x8=256 полок. Координаты книги - 1 из 256 возможных вариантов. 256 - это два в восьмой.
ответ: Сообщение содержит 8 бит информации.
5. В книге 512 страниц, закладка может лежать на любом из 512 мест. 512 - это два в девятой степени. Значит, сообщение о месте закладки несет информацию в 9 бит.
ответ: Сообщение несет 9 бит информации.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота