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