Планирование уроков на учебный год (ФГОС)



Урок 4
§4. Обработка информации






Содержание урока:

Обработка информации

4.1. Задачи обработки информации

4.2. Кодирование информации

4.3. Поиск информации

САМОЕ ГЛАВНОЕ. Вопросы и задания

Материалы к уроку


liniya

4.2. Кодирование информации


Кодирование информации широко используется в технических средствах работы с информацией (телеграф, радио, компьютеры).

Кодирование — это обработка информации, заключающаяся в её преобразовании в некоторую форму, удобную для хранения, передачи, обработки информации в дальнейшем.

Код — это система (список) условных обозначений (кодовых слов), используемых для представления информации1).

Кодовая таблица — это совокупность используемых кодовых слов и их значений.

1) Также кодом зачастую называют результат кодирования информации.


Ранее мы уже рассмотрели примеры равномерных двоичных кодов — пятиразрядный код Бодо и восьмиразрядный код ASCII.

Самый известный пример неравномерного кода — код (азбука) Морзе, в которой цифры и буквы алфавита представляются последовательностями длинных («тире») и коротких («точек») сигналов, названный в честь американского изобретателя и художника Сэмюэля Морзе (1791-1872). Буквы, встречающиеся в сообщениях чаще, имеют в этом коде более короткий код, чем «редкие» буквы (рис. 1.12).

Рис. 1.12. Кодовая таблица азбуки Морзе

В азбуке Морзе сигналы отделяются друг от друга паузами — отсутствием сигналов. За единицу «измерения» длительности сигналов принимается длительность сигнала «точка». Длительность тире (длинного сигнала) равна длительности трёх точек (коротких сигналов). Пауза между сигналами одного знака равна одной точке; пауза между знаками в слове — трём точкам; пауза между словами — семи точкам. Фактически пауза является третьим знаком в азбуке Морзе, а сам код — троичным.

Слово WORD, закодированное с помощью азбуки Морзе, на «временной» шкале можно представить так:

Самым знаменитым сообщением, закодированным азбукой Морзе, является сигнал бедствия «SOS». Его запрещено использовать без острой на то необходимости. Передаётся сигнал без межбуквенных пауз:

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

Пример 1. Светодиодная панель содержит восемь излучающих элементов, каждый из которых может светиться или красным, или жёлтым, или синим, или зелёным цветом. Сколько различных сигналов можно передать с помощью панели (все излучающие элементы должны гореть, порядок цветов имеет значение)?

На уроках математики и информатики в основной школе вы изучали элементы комбинаторики, в том числе правило умножения. Согласно ему, если элемент А можно выбрать n способами и при любом выборе А элемент В можно выбрать m способами, то пару (А, В) можно выбрать n • m способами. Это правило справедливо и для произвольного количества независимо выбираемых элементов.

Применим его к решению нашей задачи.

Существует 4 варианта выбора цвета первого элемента, 4 варианта выбора цвета второго элемента; цвета для пары элементов (1, 2) можно выбрать 4 • 4 = 42 = 16 способами; цвета для тройки элементов (1, 2, 3) можно выбрать 16 • 4 = 43 = 64 способами и т. д. Цвета для восьми элементов (1, 2, 3, 4, 5, 6, 7, 8) можно выбрать 48 = 65 536 способами.

Можно ли отнести эту задачу к классу задач на определение максимально возможного количества комбинаций (слов) фиксированной длины определённого алфавита? Обоснуйте свой ответ.


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

Для кодирования различных символов можно использовать последовательности точек и тире, содержащие не более шести знаков, т. е. 1, 2, 3, 4, 5 или 6 знаков.

Последовательностями, содержащими один из двух возможных знаков, можно закодировать два символа: один будет закодирован точкой, второй — тире.

Рассмотрим последовательности, содержащие два знака из двухсимвольного алфавита. Их может быть 2 • 2 = 22 = 4.

Последовательностей из трёх знаков, принадлежащих двухсимвольному алфавиту, может быть 4 • 2 = 23 = 8.

Рассуждая аналогичным образом, подсчитаем число последовательностей, содержащих 4, 5 и 6 знаков — 16, 32 и 64 соответственно.

Число различных последовательностей, содержащих не более шести знаков двухсимвольного алфавита, будет равно 126 = 2 + 4 + 8 + 16 + 32 + 64.

Пример 3. Имеющаяся информация должна быть закодирована в четырёхбуквенном алфавите {А, В, С, D}. Выясним, сколько существует различных последовательностей из 7 символов четырёхбуквенного алфавита {А, В, С, D}, которые содержат ровно пять букв А.

Нас интересуют семисимвольные последовательности, любые пять мест в которых будут заняты буквой А, а на двух оставшихся местах могут находиться любые из букв В, С, D.

Например:

Так как на 6-м и 7-м местах могут стоять любые из трёх оставшихся букв В, С, D, то всего существует 9 (3 • 3 = 9) разных семибуквенных последовательностей, в которых первые пять позиций заняты буквой А.

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

А сколько таких вариантов всего? Сколько всего существует способов, которыми мы можем выбрать пять мест из семи для размещения там буквы А?

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

В комбинаторике набор k элементов, выбранных из данного множества, содержащего n различных элементов, называется сочетанием из n по k.

Для вычисления значения этой величины применяется формула:

Здесь n! = 12 • ... • n.

Действительно, множество, с которым мы имеем дело, состоит из мест для записи символов в последовательности. Его элементы можно обозначить 1, 2, 3, 4, 5, 6 и 7. Требуётся выбрать из этого множества пять мест для размещения буквы А. Число возможных вариантов можно вычислить как число сочетаний из 7 по 5:

Итак, существует 21 вариант выбора в семибуквенной последовательности ровно пяти мест для размещения там буквы А. Для каждого из этих 21 вариантов имеется 9 разных вариантов заполнения двух оставшихся мест.

Всего существует 189 (21 • 9 = 189) различных последовательностей из 7 символов четырёхбуквенного алфавита {А, В, С, D}, которые содержат ровно пять букв А.

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

Прёфиксный код — код со словом переменной длины, обладающий тем свойством, что никакое его кодовое слово не может быть началом другого (более длинного) кодового слова.

Например:

1) код, состоящий из слов 0, 10 и 11, является префиксным;
2) код, состоящий из слов 0, 10, 11 и 100, не является префиксным.

Для того чтобы сообщение, записанное с помощью неравномерного кода, однозначно декодировалось, достаточно, чтобы никакое кодовое слово не было началом другого (более длинного) кодового слова. Это условие ещё называют условием Фано (в честь Роберта Марио Фано, американского учёного, известного по работам в области теории информации).

Обратное условие Фано также является достаточным условием однозначного декодирования неравномерного кода. В нём требуется, чтобы никакой код не был окончанием другого (более длинного) кода.

Для возможности однозначного декодирования достаточно выполнения одного из условий Фано — или прямого, или обратного.

Как вы понимаете смысл этого утверждения? Можно ли на его основе заявлять, что если для некоторого кода условие Фано не выполняется, то однозначное декодирование записанного с его помощью сообщения невозможно?

Пример 4. Двоичные коды для 5 букв латинского алфавита представлены в таблице:

Выясним, какое сообщение (какой набор букв) закодировано с помощью этих кодов двоичной строкой: 0110100011000.

Проанализируем имеющиеся коды: код буквы В (01) является началом кода буквы Е (011); код буквы D (10) является началом кода буквы С (100).

Таким образом, прямое условие Фано для заданных кодов не выполняется. Следовательно, имеющуюся двоичную строку нельзя декодировать однозначно, если начать её декодирование с начала (слева направо).

Начните проводить декодирование двоичной строки 0110100011000 слева направо и убедитесь в справедливости условия Фано.

Для имеющихся кодов выполняется обратное условие Фано: никакой код не является окончанием другого кода. Следовательно, имеющуюся двоичную строку можно декодировать однозначно, если начать её декодирование с конца (справа налево).

Итак, направление однозначного декодирования установлено. Процесс декодирования может быть представлен так:

0110100011000
⇓
0110100011А
⇓
0110100ЕА
⇓
0110СЕА
⇓
01DCEA
⇓
BDCEA

Если для некоторой последовательности кодов выполняется прямое условие Фано, то её декодирование следует вести слева направо. Если для некоторой последовательности кодов выполняется обратное условие Фано, то её декодирование следует вести справа налево.


Из курса информатики основной школы вам знакомо понятие дерева — иерархической структуры, состоящей из набора вершин и рёбер. Вершина, в которую не входит ни одного ребра, называется корнем; вершины, из которых не выходит ни одного ребра, называются листьями.

Дерево, из вершин которого выходит только два ребра, называется двоичным (бинарным) деревом.

Комбинации, соответствующие листьям бинарного дерева, являются кодовыми комбинациями префиксного кода.

Префиксные коды можно наглядно представить с помощью кодовых деревьев.


Пример 5. Для кодирования некоторой последовательности, состоящей из букв А, Б, В и Г, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать полученную двоичную последовательность. Для букв А, Б и В использовали такие кодовые слова: А - О, Б - 10, В - 110.

Каким кодовым словом может быть закодирована буква Г? Код должен удовлетворять свойству однозначного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них.

Для решения задачи воспользуемся бинарным деревом.

Отметим вершины, соответствующие используемым кодовым словам: А - 0, Б - 10, В - 110:

Так как комбинациям префиксного кода должны соответствовать листья бинарного дерева, наше кодовое дерево должно выглядеть так:

Итак, для кодирования буквы Г можно использовать код 111.

Усложним условие задачи. Теперь кодируемая последовательность состоит из букв А, Б, В, Г и Д. Кодовые слова для букв А, Б и В определены: А - О, Б - 10, В - 110.

Какими кодовыми словами могут быть закодированы буквы Г и Д? Код должен удовлетворять свойству однозначного декодирования. Общая длина кодовых слов для всех пяти букв должна быть минимальной.

Cкачать материалы урока






Наверх