Алгоритм Хаффмана и оптимальные коды.
Алгоритм Хаффмана строит оптимальный префиксный код: частые символы получают короткие коды, редкие — длинные.
Равномерный код — все кодовые слова одной длины (например, ASCII использует 8 бит для каждого символа).
Неравномерный код — слова разной длины (например, код Морзе, код Хаффмана).
Текст «ААББВ» (A:5, B:3, C:2):
Экономия: 3 бита (15%).
Жадный алгоритм: частые символы → короткие коды, редкие → длинные. Оптимальность доказана.
Средняя длина кода:
Энтропия Шеннона:
Для оптимального кода: L ≈ H. Разница — избыточность кода.
Символы A(p=0.5), B(p=0.25), C(p=0.125), D(p=0.125):
Оптимальный код достигает энтропии!
5 вопросов по кодированию · 20 XP за каждый правильный ответ