Кодирование Хаффмана
Закодируйте текст методом Хаффмана онлайн. Калькулятор строит оптимальное префиксное дерево, показывает коды для каждого символа и степень сжатия по сравнению с исходным текстом.
Кодирование Хаффмана
Как пользоваться: Кодирование Хаффмана
- Введите или вставьте текст в поле ввода (минимум 2 разных символа).
- Нажмите «Закодировать» — калькулятор построит дерево Хаффмана и назначит коды.
- Изучите таблицу: частота, вероятность и двоичный код для каждого символа.
- Сравните исходный размер с сжатым и оцените степень сжатия.
Таблица значений
| Из | В |
|---|---|
| A (частота 50%) | 0 (1 бит) |
| B (частота 25%) | 10 (2 бита) |
| C (частота 12,5%) | 110 (3 бита) |
| D (частота 12,5%) | 111 (3 бита) |
Примеры использования
- •Демонстрация алгоритмов сжатия данных без потерь в учебных целях.
- •Оценка эффективности сжатия текстовых файлов и потоков данных.
- •Изучение теории информации и оптимальных префиксных кодов.
- •Прототипирование и тестирование алгоритмов сжатия в программировании.
Формула
Кодирование Хаффмана строит оптимальное префиксное дерево: символам с высокой частотой присваиваются короткие коды, редким — длинные. Средняя длина кода: L = ∑ p(x) · len(x). Максимальное сжатие достигается при значительном различии частот символов.
Часто задаваемые вопросы
Что такое кодирование Хаффмана?
Кодирование Хаффмана — алгоритм сжатия данных без потерь, присваивающий более короткие двоичные коды часто встречающимся символам и более длинные — редким. Это гарантирует минимальную среднюю длину кода для заданного распределения символов.
Чем кодирование Хаффмана отличается от кода ASCII?
ASCII использует фиксированную длину — 8 бит на каждый символ. Хаффман присваивает коды переменной длины в зависимости от частоты: частые символы кодируются 1–3 битами, а редкие — больше. Это обеспечивает лучшее сжатие для реальных текстов.
Всегда ли кодирование Хаффмана сжимает данные?
Нет. Если все символы в тексте встречаются с одинаковой частотой, кодирование Хаффмана даёт нулевой выигрыш или незначительное ухудшение из-за накладных расходов на хранение таблицы кодов.