Закодировать по методу Хаффмена буквы алфавита, имеющие
следующие вероятности: E={0.6;0.4;0.2;0.2;0.6}. Подсчитать среднюю
длину кодового слова.

17 Янв 2022 в 07:59
92 +1
0
Ответы
1

Для начала упорядочим вероятности по убыванию:

E={0.6;0.6;0.4;0.2;0.2}

Затем создаем дерево Хаффмена, объединяя две наименее вероятные буквы:

Складываем две наименьшие вероятности:
0.2 + 0.2 = 0.4

Присваиваем полученной сумме значение вероятности новой вершине в дереве. Таким образом, дерево будет следующим:

.6
/ \
.4 .6
/ \
.2 .2

Повторяем процесс объединения наименьших вероятностей:

0.2 + 0.2 + 0.4 = 0.8

.6
/ \
.4 .6

/ \
.2 .2
/
.4

0.4 + 0.4 + 0.6 = 1

.6
/ \
.4 .6

/ \
.2 .2
/
.4

Теперь присвоим коды каждой букве:

E1 = 0 (0.6)E2 = 10 (0.4)E3 = 110 (0.2)E4 = 1110 (0.2)E5 = 1111 (0.6)

Средняя длина кода:
(0.61) + (0.42) + (0.23) + (0.24) + (0.6*4) = 1.8

Средняя длина кодового слова составляет 1.8 символа.

16 Апр 2024 в 19:47
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир