Печать: Ctrl+P → ориентация альбомная, масштаб 100 % (не «вписать в лист»), поля нет, «печать фона» включить — иначе пропадут рамки таблиц. На листе две одинаковые карточки: разрезать по пунктиру посередине, получится две штуки формата A5. Эта серая рамка на бумагу не печатается.
11 класс

Код Хаффмана и условие Фано

Обзорный практикум по содержанию ФГОС ко второй паре 11 класса

Равномерный код

На n различных букв нужно по log₂n битов, округлённым вверх: на 5 букв — 3 бита, потому что 2² = 4 мало, а 2³ = 8 хватает. Запас неиспользованных слов — 8 − 5 = 3.

Код Хаффмана: как строится

  1. выписать частоты букв;
  2. взять две наименьшие и слить в один узел — его вес равен их сумме;
  3. повторять, пока не останется один узел;
  4. длина всего сообщения = сумма весов всех слияний.

При совпадающих весах дерево можно построить по-разному, и коды отдельных букв получатся разными, — а сумма нет. Поэтому спрашивают именно её, а не «какой код у буквы Б».

Условие Фано

Ни одно кодовое слово не должно быть началом другого. Тогда поток читается однозначно, слева направо, и разделители не нужны.

0, 10, 110 — годится. 0, 01 — нет: 0 есть начало 01.

Декодирование

Читать слева направо, накапливая биты, пока накопленное не совпадёт с кодовым словом; совпало — записать букву и начать заново. Возвращаться назад не приходится — за это и отвечает условие Фано.

Выигрыш против равномерного кода

K · (log₂n вверх) − (сумма слияний), где K — длина сообщения в буквах. Если частоты букв близки, дерево выходит ровным и выигрыша нет вовсе: Хаффман помогает там, где буквы встречаются по-разному часто.

Тренажёр и разбор темы: https://kibersvet.ru/11/kod-huffmana/
Материалы подготовлены с использованием технологий искусственного интеллекта.
11 класс

Код Хаффмана и условие Фано

Обзорный практикум по содержанию ФГОС ко второй паре 11 класса

Равномерный код

На n различных букв нужно по log₂n битов, округлённым вверх: на 5 букв — 3 бита, потому что 2² = 4 мало, а 2³ = 8 хватает. Запас неиспользованных слов — 8 − 5 = 3.

Код Хаффмана: как строится

  1. выписать частоты букв;
  2. взять две наименьшие и слить в один узел — его вес равен их сумме;
  3. повторять, пока не останется один узел;
  4. длина всего сообщения = сумма весов всех слияний.

При совпадающих весах дерево можно построить по-разному, и коды отдельных букв получатся разными, — а сумма нет. Поэтому спрашивают именно её, а не «какой код у буквы Б».

Условие Фано

Ни одно кодовое слово не должно быть началом другого. Тогда поток читается однозначно, слева направо, и разделители не нужны.

0, 10, 110 — годится. 0, 01 — нет: 0 есть начало 01.

Декодирование

Читать слева направо, накапливая биты, пока накопленное не совпадёт с кодовым словом; совпало — записать букву и начать заново. Возвращаться назад не приходится — за это и отвечает условие Фано.

Выигрыш против равномерного кода

K · (log₂n вверх) − (сумма слияний), где K — длина сообщения в буквах. Если частоты букв близки, дерево выходит ровным и выигрыша нет вовсе: Хаффман помогает там, где буквы встречаются по-разному часто.