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

в финале турнира российской армии по шахматам встретились представители шести воинских званий майор капитан лейтенант старшина сержант и ефрейтор причём разных специальностей лётчик танкист артиллерист минометчик сапёр и связист определите специальность и звание каждого из шахматистов по следующим данным

Показать ответ
Ответ:
podynov8807
podynov8807
15.04.2022 07:55
Если нужно выбрать из вариантов, достаточно проверить, что код префиксный и найти общую длину сообщения в каждом случае.

1) ✔ префиксный
длина А: 1, длина Б: 2, длина В: 3, длина Г: 3
Длина сообщения: 10 * 1 + 5 * 2 + 20 * 3 + 5 * 3 = 10 + 10 + 60 + 15 = 95 бит

2) ✔ префиксный
длины кодовых слов: 2
Длина сообщения: (10 + 5 + 20 + 5) * 2 = 40 * 2 = 80 бит

3) ✘ не префиксный (11 - префикс 111)

4) ✔ префиксный
длина А: 2, длина Б: 3, длина В: 1, длина Г: 3
Длина сообщения: 10 * 2 + 5 * 3 + 20 * 1 + 5 * 3 = 20 + 15 + 20 + 15 = 70 бит

Наиболее оптимальный код 4).

Если бы нужно было бы найти какое-нибудь оптимальное префиксное кодирование, можно было бы построить код Хаффмана.
Выписываем частоты символов, а затем объединяем наименее часто встречающиеся символы, почлучая кодовое дерево.

А - 10, Б - 5, В - 20, Г - 5
А - 10, (БГ) - 10, В - 20
(А(БГ)) - 20, В - 20
(В(А(БГ)) - 40

Если в этой записи есть (XY), то к коду любой буквы из X приписываем слева 0, для любого символа из Y - 1. Начинаем с пустых кодов:
(БГ) -> Б: 0, Г: 1
(А(БГ)) -> А: 0, Б: 10, Г: 11
(В(А(БГ)) -> В: 0, А: 10, Б: 110, Г: 111.

Доказано, что такой код будет оптимальным.
0,0(0 оценок)
Ответ:
СвежийГусь
СвежийГусь
06.05.2023 17:39
Самое худшее, что можно придумать, это сделать именно процедуру.
Ниже вариант с процедурой, а потом другой, без процедур. Можно сравнить...

// PascalABC.NET 3.2, сборка 1509 от 27.07.2017
// Внимание! Если программа не работает, обновите версию!

Вариант с процедурой

procedure MassAvg(var r:real);
begin
  r:=ReadSeqInteger('Вводите:',ReadInteger('n=')).Average
end;

begin
  var avg:real;
  for var i:=1 to 3 do begin
    MassAvg(avg);
    Writeln('Среднее значение: ',avg)
    end
end.

Вариант без процедур и функций

begin
  for var i:=1 to 3 do begin
    Writeln('Среднее значение: ',
        ReadSeqInteger('Вводите:',ReadInteger('n=')).Average)
    end
end.

Результат
n= 7
Вводите: -5 4 11 8 0 5 4
Среднее значение: 3.85714285714286
n= 5
Вводите: 100 32 52 43 19
Среднее значение: 49.2
n= 4
Вводите: 6 6 8 7
Среднее значение: 6.75
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота