Подробный разбор

Информация. Универсальность дискретного представления информации. Двоичное кодирование. Равномерные и неравномерные коды

Условие и решение преподавателя — в одном материале.

Условие

Задания 1, 2, 3, 4 выполните письменно в тетради или на бланке домашнего задания.

Частые ошибки в домашних заданиях по информатике

 

Задание 1 (20 баллов).

Дан фрагмент текста: «Гораздо легче простить людей за то, что они не правы, чем за правоту.».  Известно, что данный текст представлен с использованием кодировки, где для хранения каждого символа используется 8 бит. Сколько байт необходимо для хранения этого текста?

 

Задание 2 (20 баллов).

Составьте таблицу двоичного кода для символов алфавита, который имеет мощность 10. Код должен быть равномерным. Сколько бит требуется для хранения каждого символа? Можно ли использовать такое же количество бит на символ, если мощность увеличится до 17 символов?

 

Задание 3 (20 баллов).

Перед вами алфавит: А, Б, В, Г, Д. Для него необходимо составить неравномерный двоичный код. Известно, что чаще всего используются буквы А и В, реже всего — Б и Д. Представьте этот код в виде таблицы с двумя столбцами: символ, двоичный код. Получившийся код должен удовлетворять условию Фано.

 

Задание 4 (40 баллов).

Дана фраза: «у осы не усы». Необходимо сжать эту фразу с помощью кода Хаффмана. Таблица частот уже построена:

_ у с ы о н е
3 2 2 2 1 1 1

Определите кодовые последовательности для каждого символа соответственно коду Хаффмана. Приведите полное решение.

Решение

Задание 1 (20 баллов).

Дан фрагмент текста: «Гораздо легче простить людей за то, что они не правы, чем за правоту». Известно, что данный текст представлен с использованием кодировки, где для хранения каждого символа используется 8 бит. Сколько байт необходимо для хранения этого текста?

Выполнение Задания 1.

Для решения данной задачи необходимо посчитать общее количество символов во фрагменте текста, учитывая пробелы и знаки препинания. Всего таких символов во фрагменте 69. Так как для хранения каждого символа требуется 8 бит (1 байт), чтобы найти информационный объём текста, необходимо умножить количество символов на информационный объём одного символа.

69 символов * 1 байт = 69 байт.

 

Задание 2 (20 баллов).

Составьте таблицу двоичного кода для символов алфавита, который имеет мощность 10. Код должен быть равномерным. Сколько бит требуется для хранения каждого символа? Можно ли использовать такое же количество бит на символ, если мощность увеличится до 17 символов?

Выполнение Задания 2.

Для равномерного кодирования десяти символов потребуется 4 бита, так как =8, что означает, что 3 бита будет недостаточно, а  = 16, что хватает для кодирования десяти символов с запасом.

Если мы используем 4 бита для кодирования символов алфавита с мощностью 10, то каждому из этих символов будет соответствовать четырёхсимвольная двоичная последовательность.

1 символ 0000
2 символ 0001
3 символ 0010
4 символ 0011
5 символ 0100
6 символ 0101
7 символ 0110
8 символ 0111
9 символ 1000
10 символ 1001

Если мощность алфавита увеличится до 17 символов, то его нельзя будет закодировать, используя 4 бита, так как  = 16.

 

Задание 3 (20 баллов).

Перед вами алфавит: А, Б, В, Г, Д. Для него необходимо составить неравномерный двоичный код. Известно, что чаще всего используются буквы А и В, реже всего — Б и Д. Представьте этот код в виде таблицы с двумя столбцами: символ, двоичный код. Получившийся код должен соответствовать условию Фано.

Выполнение Задания 3.

Условие Фано гласит, что никакое кодовое слово не может быть началом другого кодового слова. Так как буквы А и В встречаются чаще всего, их код стоит сделать как можно короче. Б и Д используются реже остальных букв алфавита, значит, их код должен быть длиннее остальных.

Исходя из вышесказанного, можем построить следующее дерево:

image006.png

Рис. 1

Представим коды букв алфавита в виде таблицы, как требуется по заданию.

Символ Двоичный код
А 11
Б 010
В 10
Г 00
Д 011

Некоторые буквы можно поменять местами и получить другую таблицу кодов, которая также будет верной. Например, если поменять буквы А и В местами, то код уже будет другим, но всё ещё соответствующим условию задания.

 

Задание 4 (40 баллов).

Дана фраза: «У осы не усы». Необходимо сжать эту фразу с помощью кода Хаффмана. Таблица частот уже построена:

_ у с ы о н е
3 2 2 2 1 1 1

Определите кодовые последовательности для каждого символа соответственно коду Хаффмана. Приведите полное решение.

Выполнение Задания 4.

Расположим веса, исходя из таблицы частот использования символов.

image008.png

Рис. 2

Возьмём два первых символа с наименьшим весом — е и н. Сложим их веса в новой вершине.

image010.png

Рис. 3

Найдём следующие вершины, которые позволят получить новую вершину с наименьшим весом.

image012.png

Рис. 4

Повторяем процедуру поиска вершин, позволяющих получать новые вершины с наименьшим весом. Все последующие шаги приводятся на скриншотах ниже.

image014.png

Рис. 5

В следующем шаге вершина с весом 2 перенесена для удобства вправо.

image016.png

Рис. 6

Следующий шаг:

image018.png

Рис. 7

Следующий шаг:

image020.png

Рис. 8

Запишем полученные коды символов в таблицу. Записываем их сверху вниз.

_ у с ы о н е
00 11 010 011 100 1010 1011

 


Список использованных источников:

Рис. 1–8. Иллюстратор Андреева А. С.

Вернуться в журнал10 класс · III четверть · 20 неделя