Для кодирования некоторой последовательности, состоящей из букв А, Г, Н, О, Р, Т, У решили использовать неравномерный двоичный код, гарантирующий однозначное декодирование.
Для букв Г, Р, О, Т использовали соответственно кодовые слова 10, 01, 001, 11.
Найдите наименьшую возможную длину кодовой последовательности для слова ОРАНГУТАН.
Если используется неравномерный двоичный код, гарантирующий однозначное декодирование, то ни одно кодовое слово не может быть началом другого кодового слова.
Кодовые слова 10, 01, 001, 11 уже используются, поэтому не может быть двузначных кодовые слов, начинающихся на единицу (10 и 11 заняты)
Построим кодовое дерево для известных кодов
Для создания новых кодовых слов придётся использовать трёхзчный код, 000.
Чтобы добавить 3 кодовых слова, для букв А, Н, У, придётся использовать и трёхзначный и четырёхзначные кодовые слова.
Буква А повторяется в слове ОРАНГУТАН 2 раза, поэтому для кодирования буквы А лучше использовать код из четырёх знаков, а для остальных букв пять знаков.
Получим следующие длины кодовых слов:
А — 4
Г — 2
Н — 5
О — 3
Р — 2
Т — 2
У — 5
О Р А Н Г У Т А Н
3 2 4 5 2 5 2 4 5
Общая длина кодовой последовательности равна:
3+2+4+5+2+5+2+4+5=32
Ответ: 32 двоичных знака
Пример кодового дерева для слова ОРАНГУТАН