Как найти наименьшую длину кодовой последовательности для слова ТЕННИСИСТ?

Для кодирования некоторой последовательности, состоящей из букв Е, И, Н, С, Т решили использовать неравномерный двоичный код, гарантирующий однозначное декодирование.

Для букв Н и Т использовали соответственно кодовые слова 010, 11.

Найдите наименьшую возможную длину кодовой последовательности для слова ТЕННИСИСТ.

0
Жалоба

Ответы (1)

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

Кодовые слова 010, и 11 уже используются, поэтому придётся составить двоичное дерево кодов, чтобы определить, какие кодовые слова можно получить.

Построим кодовое дерево для известных кодов, ветви расположены влево от блоков будут соответствовать символу 0, а расположенные вправо — 1.

Код символа определится как путь по двоичному дереву от корня к конечным блокам, соответствующим буквам (листьям дерева).

Как найти наименьшую длину кодовой последовательности для слова ТЕННИСИСТ?

Определим длины кодов букв Е, И, С так, чтобы получилась наименьшая длина кодовой последовательности.

Необходимо чтобы самые короткие коды соответствовавали буквам, которые повторяются чаще.

В слове ТЕННИСИСТ буквы С и И повторяются 2 раза, а буква Е всего один раз.

Поэтому буквы С и И можно кодировать двузначными кодами, а букву Е трёхзначным.

Кодовое дерево может выглядеть так:

Как найти наименьшую длину кодовой последовательности для слова ТЕННИСИСТ?

Длины кодов различных букв:

Е — 3 знака

И — 2 знака

Н — 2 знака

С — 2 знака

Т — 2 знака

Длина кодовой последовательности для слова ТЕННИСИСТ равна

(Т) (Е) (Н) (Н) (И) (С) (И) (С) (Т)

​ 2 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 = 19

Ответ:19 двоичных знаков

автор
Ответить
0
© 2012-2026 myanswer.ru
Все вопросы, размещенные на данном сайте, созданы пользователями или собраны из открытых источников. Связаться