По каналу связи передаются сообщения, содержащие только буквы из набора: Б, К, Л, О, Н. Для передачи используется двоичный код, удовлетворяющий условию Фано.
Кодовые слова для некоторых букв известны:
Б – 00, Н – 010, Л – 111.
Для двух оставшихся букв К и О кодовые слова неизвестны.
Какое количество двоичных знаков требуется для кодирования слова КОЛОБОК, если известно, что оно закодировано минимально возможным количеством двоичных знаков?
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Ответ:
Демонстрационный вариант ЕГЭ 2027 по информатике – задание №4
Решение:

Решение
Известны кодовые слова:
- Б = 00;
- Н = 010;
- Л = 111.
Необходимо подобрать кодовые слова для букв К и О так, чтобы выполнялось условие Фано и слово КОЛОБОК имело минимальную длину.
Код длины 1 использовать нельзя, так как слова 0 и 1 стали бы началом уже существующих кодовых слов.
Из двухразрядных кодов можно использовать 10. Код 01 использовать нельзя, поскольку он является началом кода 010, а код 11 является началом кода 111.
Поэтому одной из букв можно присвоить самый короткий доступный код:
10
Для второй буквы можно использовать, например, код 110. Тогда условие Фано выполняется.
В слове КОЛОБОК буквы встречаются следующее количество раз:
- К — 2 раза;
- О — 3 раза;
- Л — 1 раз;
- Б — 1 раз.
Так как буква О встречается чаще, ей выгодно присвоить более короткий код:
- О = 10 — 2 двоичных знака;
- К = 110 — 3 двоичных знака.
Вычислим длину закодированного слова:
К: 2 · 3 = 6
О: 3 · 2 = 6
Л: 1 · 3 = 3
Б: 1 · 2 = 2
6 + 6 + 3 + 2 = 17
Ответ: 17