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 · Билет 3 · ЕГЭ по информатике

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

Условие

По каналу связи передаются сообщения, содержащие только буквы А, Б, В, Г, Д, Е, Ж. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: А — 0, Б — 100, В — 101, Г — 1100.

Вопрос. Укажите минимальную суммарную длину кодовых слов для оставшихся трёх букв (Д, Е, Ж), при которой условие Фано будет выполняться. В ответе запишите целое число.
Не знаешь, как решать?

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

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

Решение

Решение

открыто шагов: 9 из 9
1 Шаг 1
Дано. Выпишем все буквы и известные коды (неизвестные оставим пустыми):
букваАБВГДЕЖ
код01001011100
Коды нужны для букв Д, Е, Ж.
2 Шаг 2
Подход. Задача на условие Фано: ни один код не должен быть началом другого. Отмечаем занятые коды листьями двоичного дерева (влево «0», вправо «1») и размещаем оставшиеся буквы только в свободных местах; затем суммируем длины новых кодов.
3 Шаг 3
Занятые коды: А=0, Б=100, В=101, Г=1100. Рисуем двоичное дерево: занятые коды — листья, свободные места (узел 1101 и поддерево 111) показаны пунктиром.
0100110011А0Б100В101Г1100……
Заданные коды А=0, Б=100, В=101, Г=1100. Свободны узел 1101 и поддерево 111 (пунктир).
заданный кодсвободная ветка
4 Шаг 4
Ветка «0» занята целиком — там буква А. Ветка «10» ведёт только к листьям 100 и 101 (буквы Б и В), места под ними нет. В ветке «11» занят код 1100 (Г), а свободны короткий узел 111 и лист 1101.
0100110011А0Б100В101Г1100……
Свободных мест всего два: узел 111 (3 бита) и лист 1101 (4 бита).
заданный кодсвободная ветка
5 Шаг 5
На первый взгляд выгодно занять самый короткий узел 111 (3 бита). Но как только 111 становится листом, его продолжения 1110 и 1111 закрываются, и две оставшиеся буквы помещаются только под 1101 — это коды 11010 и 11011 по 5 бит. Сумма: , а не минимум.
010011001011А0Б100В101Г1100Е11010Ж11011Д111
Если занять короткий 111 как лист, две буквы уходят на 5-й уровень: .
заданный кодболее длинный вариант
6 Шаг 6
Выгоднее не гнаться за коротким 111, а занять три свободных листа 4-го уровня: 1110 (Д), 1111 (Е) и 1101 (Ж). Условие Фано выполняется, все коды — листья.
010011001101А0Б100В101Г1100Ж1101Д1110Е1111
Оптимально: Д=1110, Е=1111, Ж=1101 (добавленные коды — фиолетовые).
заданный коддобавленный код
7 Шаг 7
Суммарная длина: .
010011001101А0Б100В101Г1100Ж1101Д1110Е1111
Итог: .
заданный коддобавленный код
8 Шаг 8
Почему это минимум. Использовать короткий узел 111 как лист нельзя без потерь: он закрывает 1110 и 1111, и тогда две буквы уходят на 5-й уровень — выходит 13. Значит, все три буквы должны стоять на 4-м уровне, а свободных листьев там ровно три: 1101, 1110, 1111. Это единственное размещение с суммой 12; любые коды глубже дают больше.
Ловушка. Иногда отвечают , беря коды 111, 1110 и 1111. Так нельзя: 111 является началом кодов 1110 и 1111, условие Фано нарушено — встретив строку «111», приёмник не поймёт, это отдельная буква или начало более длинного кода.
01001100101А0Б100В101Г1100Е1110Ж1111Д111
Так нельзя: код 111 не лист, поэтому 1110 и 1111 под ним запрещены — сумма 11 недопустима.
заданный коддобавленный коднельзя: код должен быть листом
9 Шаг 9
Почему нельзя дорастить заданный код. Новые буквы нельзя вешать и под уже известные коды А = 0, Б = 100, В = 101, Г = 1100. Если продлить такой код, он перестанет быть листом: встретив «100» (или «1100»), приёмник не поймёт, это буква Б (или Г) или начало более длинного кода. Поэтому новые буквы ставятся только в свободные места — узел 111 и лист 1101.
Правильный ответ этого билета: 12
Проверка: свободны узел 1101 и поддерево 111; минимум дают коды 1101, 1110, 1111 по 4 бита
→ . Исчерпывающий перебор подтверждает, что меньшей суммы нет.

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

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

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