Разберемся в принципах построения оптимальных префиксных кодов. Узнаем, как частота появления символов помогает сжимать данные без потерь.
№1 · КЛАССИФИКАЦИЯ
2 КАТЕГОРИИ · 1 БАЛЛ
1. Типы кодирования
Распределите характеристики кодирования по соответствующим категориям.
Слова для распределения: Код ASCII, Требуется соблюдение условия Фано, Легко определить границы символов по количеству бит, Длина кода зависит от частоты символа, Алгоритм Хаффмана, Все символы имеют одинаковую длину
Равномерный код
Неравномерный код
№2 · ТЕОРИЯ
ВЫБОР ОТВЕТА · 1 БАЛЛ
2. Суть алгоритма
К какому типу алгоритмов относится построение дерева Хаффмана?
Жадный алгоритм
Переборный алгоритм
Алгоритм случайного поиска
Рекурсивный спуск без возвратов
№3 · АНАЛИЗ
КРАТКИЙ ОТВЕТ · 1 БАЛЛ
3. Частота корня
В процессе построения дерева Хаффмана для сообщения использовались символы с частотами: А (0.4), Б (0.3), В (0.2), Г (0.1). Чему будет равна суммарная частота в корневом узле готового дерева?
№4 · ЗАДАЧА
РАСЧЕТ · 1 БАЛЛ
4. Длина сообщения
Для кодирования слова из 10 букв используется код Хаффмана. Букве 'О' (встречается 6 раз) присвоен код 0, а букве 'А' (встречается 4 раза) — код 1. Сколько бит потребуется для хранения этого слова?
№5 · СВОЙСТВА
2 КАТЕГОРИИ · 1 БАЛЛ
5. Сжатие данных
Распределите форматы файлов по типу сжатия (используют ли они алгоритмы типа Хаффмана для сохранения всех данных).
Слова для распределения: MP3, PNG, JPEG, MP4, FLAC, ZIP-архив
Без потерь (Lossless)
С потерями (Lossy)
№6 · СТРУКТУРА
ВЫБОР ОТВЕТА · 1 БАЛЛ
6. Узлы дерева
Где в дереве Хаффмана располагаются исходные символы алфавита?
Только в листьях
Только в корне
В любых узлах дерева
Только в узлах с одним потомком
№7 · КОДИРОВАНИЕ
КРАТКИЙ ОТВЕТ · 1 БАЛЛ
7. Путь в дереве
При обходе дерева Хаффмана переходу влево соответствует 0, а вправо — 1. Какую последовательность бит получит символ, если путь к нему от корня выглядит так: влево, вправо, влево?
№8 · ЗАДАЧА
СРАВНЕНИЕ · 1 БАЛЛ
8. Экономия памяти
Для кодирования 4 символов используется равномерный двухбитный код. После применения алгоритма Хаффмана длины кодов стали: 1, 2, 3, 3 бита. Сколько бит сэкономит кодирование одного символа с длиной кода 1 по сравнению с равномерным кодом?
№9 · АЛГОРИТМ
ПОРЯДОК · 1 БАЛЛ
9. Этапы построения
Распределите действия по этапам работы алгоритма Хаффмана.
Слова для распределения: Объединение двух узлов с наименьшим весом, Присвоение 0 и 1 ветвям дерева, Сортировка символов по возрастанию частоты, Подсчет частоты каждого символа
Подготовка
Построение
№10 · ТЕОРИЯ
ВЫБОР ОТВЕТА · 1 БАЛЛ
10. Тип дерева
Каким является дерево Хаффмана по своей структуре?
Бинарное дерево
Тернарное дерево
Связный список
Неориентированный граф без циклов
№11 · ДЕКОДИРОВАНИЕ
КРАТКИЙ ОТВЕТ · 2 БАЛЛА
11. Чтение сообщения
Даны коды Хаффмана: А=0, Б=10, В=110, Г=111. Декодируйте последовательность: 0101110.
№12 · ЗАДАЧА
РАСЧЕТ · 2 БАЛЛА
12. Средняя длина кода
В алфавите три буквы: X (частота 0.5), Y (0.3), Z (0.2). Постройте коды Хаффмана и вычислите среднюю длину кода (бит на символ).
№13 · АНАЛИЗ
КЛАССИФИКАЦИЯ · 2 БАЛЛА
13. Оптимальность кодов
Распределите наборы кодов на префиксные (допускающие однозначное декодирование) и непрефиксные.
Слова для распределения: 0,1,01, 1,01,001, 0,01,11, 00,01,10,11, 1,10,110, 0,10,11
Префиксные
Непрефиксные
№14 · ТЕОРИЯ
ВЫБОР ОТВЕТА · 2 БАЛЛА
14. Условие Фано
Какое утверждение верно описывает прямое условие Фано?
Никакое кодовое слово не является началом другого кодового слова
Сумма длин всех кодовых слов должна быть четной
Код самого частого символа должен состоять только из нулей
Длина кода каждого символа не может превышать логарифм мощности алфавита
№15 · ГРАФЫ
КРАТКИЙ ОТВЕТ · 2 БАЛЛА
15. Количество узлов
Если в алфавите N=6 различных символов, сколько всего узлов (включая листья и внутренние узлы) будет в полном дереве Хаффмана?
№16 · ЗАДАЧА
ПОСТРОЕНИЕ · 2 БАЛЛА
16. Кодирование частот
Постройте дерево Хаффмана для символов со следующими частотами: А: 10, Б: 15, В: 30, Г: 45. Укажите код для символа с частотой 10 (А), если при ветвлении меньший вес идет в ветку 0.
+15 заданий в этом листе
Зарегистрируйтесь — и соберите свой рабочий лист по этой теме за минуту: заданий столько, сколько нужно.
№17 · ПРИМЕНЕНИЕ
2 КАТЕГОРИИ · 2 БАЛЛА
17. Адаптивное сжатие
Распределите особенности алгоритмов Хаффмана.
Слова для распределения: Дерево строится один раз для всего файла, Не требует предварительного анализа всего файла, Дерево перестраивается в процессе кодирования, Таблица частот передается вместе с кодом, Эффективен для потоковых данных, Требует два прохода по данным
Статический алгоритм
Адаптивный алгоритм
№18 · ЛОГИКА
ВЫБОР ОТВЕТА · 2 БАЛЛА
18. Вариативность дерева
Могут ли для одного и того же набора частот существовать разные деревья Хаффмана?
Да, если есть узлы с одинаковыми весами
Нет, алгоритм всегда выдает строго одну структуру
Да, но только если количество символов нечетное
Нет, так как это нарушит условие однозначного декодирования
№19 · АНАЛИЗ
КРАТКИЙ ОТВЕТ · 2 БАЛЛА
19. Максимальная длина
Какова максимально возможная длина кодового слова (в битах) для алфавита из 4 символов при использовании алгоритма Хаффмана?
№20 · ЗАДАЧА
РАСЧЕТ · 2 БАЛЛА
20. Коэффициент сжатия
Текст состоит из 100 символов алфавита из 4 букв. При равномерном коде размер файла — 200 бит. После сжатия Хаффманом средняя длина кода составила 1.6 бита на символ. Вычислите коэффициент сжатия (отношение старого размера к новому).
№21 · СРАВНЕНИЕ
2 КАТЕГОРИИ · 3 БАЛЛА
21. Хаффман против Шеннона-Фано
Распределите утверждения между двумя методами префиксного кодирования.
Слова для распределения: Основан на последовательном разбиении вероятностей, Не всегда дает минимальную избыточность, Строится сверху вниз (делением алфавита на группы), Всегда строит оптимальное дерево, Строится снизу вверх (от листьев к корню), Гарантирует минимальную среднюю длину кода
Алгоритм Хаффмана
Алгоритм Шеннона-Фано
№22 · ТЕОРИЯ
ВЫБОР ОТВЕТА · 3 БАЛЛА
22. Нижний предел сжатия
Какая величина определяет теоретический предел сжатия данных без потерь, к которому стремится алгоритм Хаффмана?
Информационная энтропия Шеннона
Мощность алфавита
Дисперсия частот символов
Коэффициент избыточности кода
№23 · ЛОГИКА
КРАТКИЙ ОТВЕТ · 3 БАЛЛА
23. Невозможный набор
Может ли алгоритм Хаффмана сгенерировать следующий набор кодов для алфавита из 3 символов: {0, 10, 110}? Ответ дайте одним словом (Да/Нет) и обоснуйте.
№24 · БИОЛОГИЯ
МЕЖПРЕДМЕТНЫЙ БЛОК · 3 БАЛЛА
24. Сжатие ДНК
Цепочка ДНК состоит из нуклеотидов A, C, G, T. В исследуемом фрагменте из 1000 единиц частоты составили: A=0.45, C=0.25, G=0.20, T=0.10. Сколько бит займет этот фрагмент при сжатии кодом Хаффмана? В ответе укажите только число.
№25 · ПРОДВИНУТЫЙ УРОВЕНЬ
2 КАТЕГОРИИ · 3 БАЛЛА
25. Канонический код
Распределите свойства между стандартным кодом Хаффмана и каноническим кодом Хаффмана.
Слова для распределения: Позволяет значительно сэкономить место на хранении таблицы кодов, Структура дерева может быть произвольной при равных весах, Для декодирования нужно передавать всё дерево, Кодовые слова одной длины идут подряд как двоичные числа, Для декодирования достаточно знать только длины кодов каждого символа
Стандартный Хаффман
Канонический Хаффман
№26 · МАТЕМАТИКА
ВЫБОР ОТВЕТА · 3 БАЛЛА
26. Числа Фибоначчи
Как будет выглядеть дерево Хаффмана, если частоты символов представляют собой последовательность Фибоначчи (1, 1, 2, 3, 5, 8...)?
Максимально несбалансированное дерево (бамбук)
Идеально сбалансированное дерево
Дерево, где все листья находятся на одном уровне
Полный граф
№27 · АНАЛИЗ
КРАТКИЙ ОТВЕТ · 3 БАЛЛА
27. Избыточность
Чему равна средняя длина кода Хаффмана для 8 равновероятных символов? Ответ дайте числом.
№28 · ЗАДАЧА
РАСЧЕТ · 3 БАЛЛА
28. Лингвистический расчет
В русском языке частота буквы 'о' ≈0.11, а буквы 'ф' ≈0.002. В некотором тексте из 5000 знаков эти буквы встретились согласно их вероятностям. На сколько больше бит суммарно займут все буквы 'ф', чем 'о', если код буквы 'о' — 3 бита, а код 'ф' — 9 бит?
№29 · АЛГОРИТМЫ
2 КАТЕГОРИИ · 3 БАЛЛА
29. Виды сжатия
Распределите методы сжатия по их основному принципу.
Слова для распределения: Арифметическое кодирование, Deflate (в части LZSS), Код Хаффмана, LZW (Lempel-Ziv-Welch), LZ77, Код Шеннона-Фано
Статистическое сжатие
Словарное сжатие
№30 · СЛОЖНОСТЬ
ВЫБОР ОТВЕТА · 3 БАЛЛА
30. Временная сложность
Какова временная сложность построения дерева Хаффмана для алфавита из n символов при использовании приоритетной очереди (кучи)?