1. Закодировать алфавит B={B1, ,B5} двоичным кодом, если вероятности букв следующие: p(B1)=1/3; p(B2)=1/3; p(B3)=2/3; p(B4)=2/3; p(B5)=2/3. (метод кодирования Шеннона - Фано). 2. Закодировать по методу Хаффмена буквы алфавита B={B1, ,B5}. Подсчитать среднюю длину кодового слова.

16 Ноя 2020 в 19:41
151 +1
0
Ответы
1

Метод кодирования Шеннона - Фано:

Сначала отсортируем буквы по убыванию вероятностей: B5, B4, B3, B1, B2.Затем разделим алфавит на две части так, чтобы сумма вероятностей в каждой части была примерно равна. Получим следующее разделение: {B5, B4, B3} и {B1, B2}.Добавим к коду первой части бит "0", а ко второй части - бит "1".Проделаем те же шаги для каждой полученной части: {B5, B4, B3} и {B1, B2}.Закодированный алфавит будет следующим: B5 - 0, B4 - 10, B3 - 11, B1 - 100, B2 - 101.

Метод кодирования Хаффмена:

Построим дерево Хаффмена, начиная с самых вероятных букв: B3, B4, B5, B1, B2.B3, B4 и B5 будут иметь двоичные коды меньшей длины, чем B1 и B2.Закодированный алфавит:
B3 - 0
B4 - 10
B5 - 11
B1 - 100
B2 - 101

Средняя длина кодового слова:
Средняя длина = Σ(pi li), где pi - вероятность буквы i, li - длина кодового слова для буквы i.
Средняя длина = (2/3 2) + (2/3 2) + (2/3 2) + (1/3 3) + (1/3 3) = 4 + 4 + 4 + 1 + 1 = 14/3 или примерно 4,67.

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