ex exxam.ru
Задания4 из 27
01 Графы: схема дорог и таблица расстояний 02 Логика: фрагмент таблицы истинности, порядок столбцов 03 Базы данных: поиск информации в связанных таблицах 04 Кодирование: условие Фано и двоичное дерево кода текущее05 Двоичная запись числа: алгоритм строит новое число 06 Исполнитель Черепаха: движение и подсчёт точек 07 Информационный объём: звук и изображения 08 Подсчёт слов: лексикографический список и перебор 09 Электронные таблицы: подсчёт строк по условию 10 Текстовый документ: поиск сочетаний букв по условию 11 Объём данных: мощность алфавита и кодирование 12 Исполнитель МТ (машина на ленте): чтение программы 13 IP-адреса и маски сетей TCP/IP 14 Арифметические выражения и системы счисления 15 Логика: истинность выражения с отрезками и предикатами 16 Рекурсивные функции: чтение и счёт по формулам 17 Обработка целочисленной информации: поиск пар в файле 18 Динамическое программирование: Робот-сборщик монет 19 Игры: выигрышная стратегия первым ходом (куча) 20 Игры: победа Пети своим вторым ходом (куча) 21 Игры: победа Вани первым или вторым ходом (куча) 22 Многопоточные вычисления: максимальное число одновременных процессов 23 Динамика: количество программ исполнителя 24 Обработка символьных строк: поиск подстроки по условию 25 Перебор чисел: делители и сумма M 26 Задание 26 нужны файлы27 Задание 27 нужны файлы
4
1 балл демоверсия ЕГЭ-2026 сборник

Кодирование: условие Фано и двоичное дерево кода

Задание 4 · Билет 2 · ЕГЭ по информатике

Билет 1 — демоверсия ЕГЭ-2026; остальные билеты — задания в формате экзамена (открытый сборник или тренировочные по образцу). Это тренировочные материалы, а не официальные КИМ. Ответы пересчитаны и сверены.

Условие

По каналу связи передаются сообщения, содержащие буквы из набора: В, Е, О, Р, Т. Для передачи используется двоичный код, удовлетворяющий условию Фано (никакое кодовое слово не является началом другого) — это обеспечивает однозначную расшифровку.

Кодовые слова для некоторых букв известны: О — 1111, Р — 110. Для трёх оставшихся букв В, Е и Т кодовые слова неизвестны.

Вопрос. Какое количество двоичных знаков потребуется для кодирования слова ТЕТЕРЕВ, если известно, что оно закодировано минимально возможным количеством знаков?
Не знаешь, как решать?

Потренируйся на дереве кода: расставляй коды по свободным местам и строй дерево по кодам.

Открыть тренажёр

Решение

Решение

открыто шагов: 8 из 8
1 Шаг 1
Дано. Выпишем все буквы и известные коды (неизвестные оставим пустыми):
букваВЕОРТ
код1111110
Коды нужны для букв В, Е, Т.
2 Шаг 2
Подход. Снова условие Фано. Занятые коды занимают часть двоичного дерева; чтобы сократить слово, самые частые буквы слова нужно закодировать самыми короткими из свободных кодов, а редкие — более длинными.
3 Шаг 3
В слове ТЕТЕРЕВ буквы встречаются так: Е — 3 раза, Т — 2 раза, Р — 1 раз, В — 1 раз (буква О не встречается).
4 Шаг 4
Заданные коды занимают ветку «1»: Р = 110 (длина 3), О = 1111. Свободны короткие коды «0» и «10», а также длинный 1110 — они показаны пунктиром.
01010101……Р110…О1111
Заданные Р=110, О=1111. Свободны короткие 0, 10 и длинный 1110 (пунктир).
заданный кодсвободная ветка
5 Шаг 5
Минимально: Е = 0 (1 бит — самая частая буква), Т = 10 (2 бита), В = 1110 (4 бита). Р остаётся 110 (3 бита).
01010101Е0Т10Р110В1110О1111
Назначили Е=0, Т=10, В=1110 (добавленные коды — фиолетовые).
заданный коддобавленный код
6 Шаг 6
Сумма для слова: .
01010101Е0Т10Р110В1110О1111
Итог слова ТЕТЕРЕВ: .
заданный коддобавленный код
7 Шаг 7
Почему это минимум. Свободных «верхних» кодов ровно три: 0 (1 бит), 10 (2 бита) и 1110 (4 бита). Любой другой свободный код лежит внутри одной из этих веток и потому только длиннее (например, 000 вместо 0 — уже 3 бита). Букв без кода тоже три — В, Е, Т, — значит занять нужно именно эти три кода. Осталось распределить их по частоте: если поменять два кода местами, у более частой буквы код станет длиннее и сумма вырастет. Поэтому самый короткий код — самой частой букве: Е (3 раза) = 0, Т (2 раза) = 10, В (1 раз) = 1110. Буква Р всегда 3 бита (110), а О в слове ТЕТЕРЕВ не встречается. Если же уйти в более глубокую ветку — например, взять вместо 0 коды 000, 001, 010, — выйдет , плюс Р = 3, всего . Другой расклад даёт больше 14.
8 Шаг 8
Почему нельзя дорастить заданный код. Новые буквы нельзя повесить и под уже известные коды Р = 110 или О = 1111. Если продлить такой код, он перестанет быть листом: встретив строку «110» (или «1111»), приёмник не поймёт, это буква Р (или О) или начало более длинного кода. Поэтому новые буквы ставятся только в свободные ветки 0, 10 и 1110.
Правильный ответ этого билета: 14
Проверка: минимальное кодирование даёт
. Совпадает с опубликованным ответом источника.

Теория и другие билеты

Разбор с нуля, типовые ошибки, частые вопросы и все билеты задания 4 — на странице задания.

Задание 4: теория и другие билеты Практикум