Задание №4 — Префиксные коды, условие Фано
По каналу связи передаются шифрованные сообщения, содержащие только 9 букв: А, Б, В, Г, Д, Е, Ж, 3, И; для передачи используется неравномерный двоичный код. Для девяти букв используются кодовые слова.
| Буква | Кодовое слово | Буква | Кодовое слово | |
| А | 000 | Е | 11101 | |
| Б | 010 | Ж | 110 | |
| В | 10101 | З | 1011 | |
| Г | 00100 | И | ||
| Д | 01111 |
Укажите кратчайшее кодовое слово для буквы И, при котором код будет удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Правильный ответ
100
Пояснение
Решение:
Условие Фано означает, что ни одно кодовое слово не является началом другого. Перебираем кандидатов для буквы И по возрастанию длины, а внутри одной длины — по возрастанию числового значения; первый подошедший и будет ответом.
Длина 1. Слово 0 — начало кода 000 (буква А); слово 1 — начало кода 110 (буква Ж). Оба не годятся.
Длина 2. Слово 00 — начало 000; 01 — начало 010 (Б); 10 — начало 10101 (В); 11 — начало 110 (Ж). Не годится ни одно.
Длина 3. Слово 000 уже занято буквой А; 001 — начало кода 00100 (Г); 010 занято буквой Б; 011 — начало кода 01111 (Д); а слово 100 подходит: ни один из имеющихся кодов не начинается с 100 (коды 10101 и 1011 начинаются с 101) и ни один из них не является началом слова 100.
Значит кратчайшее подходящее кодовое слово — 100.
Ответ: 100