Указание:
Постройте дерево кодирования.
Решение:
Построим дерево кодирования.

Нужно закодировать ещё четыре буквы (Б, К, Л, О), а в дереве есть два свободных узла. Каждое продолжение дерева из свободного узла создаёт два узла вместо одного, то есть количество узлов увеличивается на
. Значит, нужно продолжить дерево в двух местах. С точки зрения длины кодов это можно сделать двумя способами: - Из узла
(длина кода
) получить два узла с длиной кода
, затем продолжить дерево из любого из трёх свободных узлов длины
; - Из узла
(длина кода
) получить два узла с длиной кода
, а затем из одного из них – два узла с длиной кода
.
В первом случае мы получим новые коды длиной
,
,
,
, во втором –
,
,
,
. Подсчитаем количество знаков для кодирования слова КОЛОБОК в каждом из этих случаев. Очевидно, что для получения наименьшей длины самым коротким должен быть код буквы О (она встречается чаще всех), следующим – код буквы К.
В первом случае длина кода букв О и К –
бит, букв Л и Б –
бит, для кодирования слова КОЛОБОК потребуется
бит. В любом случае для кодирования слова КОЛОБОК потребуется минимум
двоичных знака.