OhMyCalc

Кодирование Хаффмана

Закодируйте текст методом Хаффмана онлайн. Калькулятор строит оптимальное префиксное дерево, показывает коды для каждого символа и степень сжатия по сравнению с исходным текстом.

Кодирование Хаффмана

Как пользоваться: Кодирование Хаффмана

  1. Введите или вставьте текст в поле ввода (минимум 2 разных символа).
  2. Нажмите «Закодировать» — калькулятор построит дерево Хаффмана и назначит коды.
  3. Изучите таблицу: частота, вероятность и двоичный код для каждого символа.
  4. Сравните исходный размер с сжатым и оцените степень сжатия.

Таблица значений

ИзВ
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 битами, а редкие — больше. Это обеспечивает лучшее сжатие для реальных текстов.
Всегда ли кодирование Хаффмана сжимает данные?
Нет. Если все символы в тексте встречаются с одинаковой частотой, кодирование Хаффмана даёт нулевой выигрыш или незначительное ухудшение из-за накладных расходов на хранение таблицы кодов.