Для кодирования некоторой последовательности, состоящей из букв Е, И, Н, С, Т решили использовать неравномерный двоичный код, гарантирующий однозначное декодирование.
Для букв Н и Т использовали соответственно кодовые слова 010, 11.
Найдите наименьшую возможную длину кодовой последовательности для слова ТЕННИСИСТ.
При кодировании неравномерным двоичным кодом, гарантирующим однозначное декодирование, ни одно кодовое слово не может быть префиксом (началом) другого кодового слова.
Кодовые слова 010, и 11 уже используются, поэтому придётся составить двоичное дерево кодов, чтобы определить, какие кодовые слова можно получить.
Построим кодовое дерево для известных кодов, ветви расположены влево от блоков будут соответствовать символу 0, а расположенные вправо — 1.
Код символа определится как путь по двоичному дереву от корня к конечным блокам, соответствующим буквам (листьям дерева).
Определим длины кодов букв Е, И, С так, чтобы получилась наименьшая длина кодовой последовательности.
Необходимо чтобы самые короткие коды соответствовавали буквам, которые повторяются чаще.
В слове ТЕННИСИСТ буквы С и И повторяются 2 раза, а буква Е всего один раз.
Поэтому буквы С и И можно кодировать двузначными кодами, а букву Е трёхзначным.
Кодовое дерево может выглядеть так:
Длины кодов различных букв:
Е — 3 знака
И — 2 знака
Н — 2 знака
С — 2 знака
Т — 2 знака
Длина кодовой последовательности для слова ТЕННИСИСТ равна
(Т) (Е) (Н) (Н) (И) (С) (И) (С) (Т)
2 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 = 19
Ответ:19 двоичных знаков