Вопрос:

По каналу связи передаются сообщения, содержащие только шесть букв: Т, Е, Н, С, И, В. Для передачи используется двоичный код, допускающий однозначное декодирование. Кодовые слова для букв известны: Т — 010, Е — 0100, Н — 1100, С — 01000, И — 0110, В — 1110. Как можно сократить код для буквы Н, чтобы сохранялось свойство однозначности декодирования? Если таких кодов несколько, в качестве ответа указать код наименьшей длины.

Ответ:

Попробуем заменить код буквы Н на однобитный код 1.

Получим набор кодовых слов: Т — 010, Е — 0100, Н — 1, С — 01000, И — 0110, В — 1110.

Проверка однозначности декодирования методом Сардина показывает, что при таком наборе кодов пустое слово среди возникающих остаточных цепочек не появляется. Следовательно, две различные последовательности кодовых слов не могут давать одну и ту же двоичную строку.

Код длины 0 невозможен, поэтому длина 1 является наименьшей возможной.

Ответ: Н — 1.