По каналу связи передаются сообщения, каждое из которых содержит 8 букв А, 8 букв Б, 16...

0 голосов
272 просмотров

По каналу связи передаются сообщения, каждое из которых содержит 8 букв А, 8 букв Б, 16 букв В и 32 буквы Г (других букв в сообщениях нет).
Каждую букву кодируют двоичной последовательностью.

При выборе кода учитывались два требования:
а) ни одно кодовое слово не является началом другого (это нужно, чтобы код допускал однозначное декодирование);
б) общая длина закодированного сообщения должна быть как можно меньше.

Какая суммарная длина всех четырёх кодовых слов?


Информатика (133 баллов) | 272 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

В а) записано условие Фано. Будем использовать известный алгоритм Шеннона-Фано для построения кода. Не вижу смысла тут описывать этот алгоритм: он хорошо известен и может быть быстро найден в учебниках или в Интернет. Этапы построения кода даны во вложении.
Длина сообщения равна 8+8+16+32 = 64 символа.
Вероятности появления символов:
Z(a) = 8/64 = 1/8; Z(б) = Z(a) = 1/8; Z(в) = 16/64 = 1/4; Z(г) = 32/64 = 1/2.
В построенном коде символы выглядят так:
Г - 0
В - 10
А - 110
Б - 111
Суммарная длина кодовых слов составляет 1+2+3+3 = 9 бит.
Общая длина сообщения (для правки) равна 32×1+16×2+8×3+8×3 = 112 бит

Ответ: 9 бит


image
(150k баллов)