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