
По каналу связи передаются сообщения, содержащие только восемь букв: А, В, Е, З, И, Н, О, Р. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: А — 101, В — 010, И — 00. Какое наименьшее количество двоичных знаков потребуется для кодирования слова НЕВЕЗЕНИЕ?
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Решение. Буква Е повторяется в слове НЕВЕЗЕНИЕ чаще всего, поэтому закодируем её кодовым словом 11.
Ответ: 23.
Примечание.
Ответ в данной задаче — 23. Тем, у кого получается другой ответ, рекомендуем сделать следующее.
1. Построить дерево возможных кодовых слов (в дальнейшем — кодов), длина которых не превышает 4.
2. Отметить на данном дереве заданные коды для букв А, В, И.
3. Вычеркнуть запрещенные коды, то есть коды, расположенные на ветках дерева, исходящих из отмеченных кодов, а также на ветках, соединяющих отмеченные коды с вершиной дерева.
4. Последовательно отмечать на дереве выбранный код для очередной буквы и вычеркивать коды, которые оказываются запрещенными после выбора данного кода.
После кодирования всех букв, входящих в слово НЕВЕЗЕНИЕ, в дереве кодов должен остаться хотя бы один свободный (не отмеченный и не запрещенный) код. Он необходим, чтобы на его основе построить коды для
Покажем, как могло бы выглядеть решение в этом случае.
Строим дерево кодовых слов, отмечаем коды заданных букв (выделено красным) и вычеркиваем запрещенные коды (выделено серым).
Выбираем для буквы, чаще всего встречающейся в слове (это
Выбираем для следующей буквы, чаще встречающейся в заданном слове (это
Пытаемся выбрать код для следующей буквы (это
Тогда для
Если сосчитать суммарную длины кодовых слов все букв, входящих в слово НЕВЕЗЕНИЕ, то получим 23.
PDF-версии: