По каналу связи передаются сообщения, содержащие только буквы из набора: Е, Л, О, Р, П, С, Т. Для передачи используется двоичный код, удовлетворяющий прямому условию Фано, согласно которому никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Кодовые слова для некоторых букв известны: О — 110, С — 01, Т — 10. Для четырёх оставшихся букв Е, Л, Р, П кодовые слова неизвестны. Какое количество двоичных знаков потребуется для кодирования слова ПЕРЕПЕЛ, если известно, что оно закодировано минимально возможным количеством двоичных знаков?
Решение:
Слово ПЕРЕПЕЛ. Частота букв: Е (3 раза), П (2 раза), Р (1 раз), Л (1 раз).
Известные коды: О = 110, С = 01, Т = 10.
Свободные вершины для новых кодов находятся в ветках 00 и 111.
Оптимальное распределение длин для 4 новых букв: 3, 3, 4, 4.
Самые частые буквы Е и П получают коды длины 3.
Назначаем: Е = 3, П = 3.
Остальные: Р = 4, Л = 4.
Слово ПЕРЕПЕЛ: П(3) + Е(3) + Р(4) + Е(3) + П(3) + Е(3) + Л(4).
Сумма: 3 + 3 + 4 + 3 + 3 + 3 + 4 = 23.