Источник генерирует знак x1 и x2 с вероятностями р(x1)=0,33 и р(x2)=0,67. Построить коды...

0 голосов
46 просмотров

Источник генерирует знак x1 и x2 с вероятностями р(x1)=0,33 и р(x2)=0,67. Построить коды Шеннона – Фано и Хаффмана для для последовательности из трех знаков. Каково среднее число символов на знак? Сравнить с энтропией.


Информатика (15 баллов) | 46 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Строить коды для алфавита из двух символов немного странно - и так понятно, что получатся 0 и 1, и все эти кодирования бессмысленны.

Код Шеннона - Фано: делим знаки на две части, чтобы суммарные вероятности появления символов частей были максимально близки (тут в каждой части всего один символ - иначе никак). Одной приписываем 0, другой 1. На этом всё кончилось.

Код Хаффмана: выбираем два символа с наименьшими вероятностями, у одного постфикс 0, у другого 1. Объединяем в одну вершину, и она осталась одна. Конец.

В среднем 1 символ - 1 бит.
Энтропия -∑ p ㏒₂ p = -0.33 log 0.33 - 0.67 log 0.67 = 0.915 бит на символ.

Учитывая, что энтропия всегда не превосходит среднюю длину кода, тут сошлось.

(148k баллов)