Этот вариант адаптивного кодирования Хаффмана очень прост, но менее эффективен. Его идея заключается в построении множества из п кодов переменной длины на основе равных вероятностей и случайном присвоении этих кодов п символам. После чего смена кодов делается «на лету» по мере считывания и сжатия символов. Метод не слишком производителен, поскольку коды не основаны на реальных вероятностях символов входного файла. Однако его проще реализовать, и он будет работать быстрее описанного выше алгоритма, поскольку переставляет строки таблицы быстрее, чем первый алгоритм ...
На рис. 1.13 представлено множество из пяти символов с их вероятностями, а также типичное дерево Хаффмана. Символ А возникает в 55% случаев и ему присваивается однобитовый код, что вносит вклад 0.55 х 1 в среднюю длину. Символ Е возникает лишь в 2% случаев. Ему присваивается код длины 4, и его вклад равен 0.02 х4 = 0.08. Тогда средняя длина кода равна
0.55 х 1 + 0.25 х 2 + 0.15 х 3 + 0.03 х4 + 0.02 х 4 = 1.7 бит на символ.
Удивительно, но тот же результат получится, если сложить значения вероятностей четырех внутренних узлов кодового дерева: 0.05+ +0.2 ...