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