Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для буквы А использовали кодовое слово 0, для буквы Б – кодовое слово 110. Какова наименьшая возможная суммарная длина всех четырёх кодовых слов?

16 Сен 2019 в 07:43
234 +1
0
Ответы
1

Для решения данной задачи, можно воспользоваться алгоритмом Фано.

Нам известно, что частота встречаемости букв в последовательности равна:
A - 1, B - 1, В - 1, Г - 1.

Упорядочим буквы по убыванию частоты встречаемости:
(A, B, В, Г).

Далее рекурсивно делим буквы на две группы с приблизительно одинаковыми суммарными частотами. Получаем следующее дерево кодирования:

3
/ \
A 2
/ \
B 1
/ \
В Г

Кодовые слова для каждой буквы:
A - 0
B - 10
В - 110
Г - 111

Суммарная длина всех четырех кодовых слов:
11 + 12 + 13 + 13 = 1 + 2 + 3 + 3 = 9.

Таким образом, наименьшая возможная суммарная длина всех четырех кодовых слов равна 9.

19 Апр в 23:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир