Teacher & coder

Задача № 333

По каналу связи передаются сообщения, содержащие только буквы: А, Е, Л, Н, О, Т, Ф. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: Т – 00, Ф – 1011. Для пяти оставшихся букв А, Е, Л, Н и О кодовые слова неизвестны. Какое количество двоичных знаков требуется для кодирования слова ТЕЛЕФОН, если известно, что оно закодировано минимально возможным количеством двоичных знаков?

Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

Можно скопировать и вставить все ответы сразу
СтатГрад 23 октября 2025 года
Прокрути, чтобы прочитать решение задачи
Ты уверен, что хочешь это сделать?
Удачного чтения!

Решение

Шаг 1. Нарисуем двоичное дерево и отметим на нём, какие коды уже заняты, а какие ещё свободны.

Шаг 2. По условию нужно закодировать ещё 5 букв, но на дереве свободно только 4 кода. Значит, надо один из этих кодов разбить дальше, чтобы получить ещё один.

Рассмотрим все варианты

Короткие коды нужно отдавать самым частым буквам, чтобы сумма длины всех кодов была минимальной.

Вариант 1. Разделим код 100 на два кода: 1001 и 1000

Общая длина кода: 20

БукваТЕЛЕФОН
Код00011101101110011000

Вариант 2. Разделим код 11 на два кода: 110 и 111

Общая длина кода: 19

БукваТЕЛЕФОН
Код0001110011011111100

Вариант 3. Разделим код 1010 на два кода: 10100 и 10101

Общая длина кода: 20

БукваТЕЛЕФОН
Код00011101101110010100

Ответ

Минимальное возможное количество знаков — 19.

Артём Зинкин

Лучше не гуглить и подумать самостоятельно. Тест можно пройти несколько раз :)
Чтобы поделиться задачей с коллегами или друзьями, отправьте им ссылку :)
Забыл сказать, что у этой задачи есть подробное решение. Посмотрите его :)
Попробуйте решить эту задачу сами и посмотрите наши разборы похожих задач :)
Кстати, на ЕГЭ тоже нельзя копировать :)
Этим материалом удобно поделиться по прямой ссылке :)