02.11.2012

advertisement
КОДИРОВАНИЕ (равномерное и
неравномерное)
ДЕКОДИРОВАНИЕ (однозначное и
неоднозначное)
Автор – Лучникова Ольга Васильевна
МБОУ «лицей № 35» г. Новокузнецк
КОДИРОВАНИЕ – ПРОЦЕСС ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ ИЗ
ФОРМЫ, УДОБНОЙ ДЛЯ ВОСПРИЯТИЯ, В ФОРМУ, УДОБНУЮ ДЛЯ ЕЕ
ОБРАБОТКИ (ХРАНЕНИЯ, ПЕРЕДАЧИ, АВТОМАТИЧЕСКОЙ ОБРАБОТКИ)
При кодировании
символам исходного
алфавита ставятся в
соответствие символы
другого алфавита.
кодирование
равнозначное
Двоичное
кодирование
В ЭВМ каждому символу ставится в
соответствие свой двоичный код
неравнозначное
Перевод русского текста (33 символа) на
английский язык (26 символов), т.е., не
каждому символу из русского алфавита
соответствует какой-то один символ
английского алфавита
КОДИРОВАНИЕ
РАВНОМЕРНОЕ
НЕРАВНОМЕРНОЕ
ВСЕМ СИМВОЛАМ ИЗ ИСХОДНОГО
АЛФАВИТА СТАВИТСЯ В СООТВЕТСТВИЕ
ОДИНАКОЕ КОЛИЧЕСТВО СИМВОЛОВ
НОВОГО АЛФАВИТА
РАЗНЫМ СИМВОЛАМ ИЗ ИСХОДНОГО
АЛФАВИТА СТАВИТСЯ В СООТВЕТСТВИЕ
РАЗНОЕ КОЛИЧЕСТВО СИМВОЛОВ
НОВОГО АЛФАВИТА
ДВОИЧНОЕ
КОДИРОВАНИЕ В ЭВМ
АЗБУКА МОРЗЕ
РАВНОМЕРНОЕ КОДИРОВАНИЕ
кодирование
ДВОИЧНОЕ
КАЖДЫЙ ИЗ СИМВОЛОВ
ИСХОДНОГО АЛФАВИТА
КОДИРУЕТСЯ ПРИ ПОМОЩИ
ДВУХ СИМВОЛОВ НОВОГО
АЛФАВИТА
+и–
1и0
Y и N и т.п.
ТРОИЧНОЕ
КАЖДЫЙ ИЗ СИМВОЛОВ
ИСХОДНОГО АЛФАВИТА
КОДИРУЕТСЯ ПРИ ПОМОЩИ
ТРЕХ СИМВОЛОВ НОВОГО
АЛФАВИТА
ВОСЬМЕРИЧНОЕ
КАЖДЫЙ ИЗ СИМВОЛОВ
ИСХОДНОГО АЛФАВИТА
КОДИРУЕТСЯ ПРИ ПОМОЩИ
ВОСЬМИ СИМВОЛОВ
НОВОГО АЛФАВИТА
+ , –, 0
N - РИЧНОЕ
КАЖДЫЙ ИЗ
СИМВОЛОВ
ИСХОДНОГО
АЛФАВИТА
КОДИРУЕТСЯ ПРИ
ПОМОЩИ N
СИМВОЛОВ НОВОГО
АЛФАВИТА
0, 1, 2
0, 1, 2, 3, 4, 5, 6, 7
0, 1, 2, 3, … N
A, B, C
A, B, C, D, E, F, G, H
A, B, C, D, E, F, … (ВСЕГО
N СИМВОЛОВ)
R, G, B и т.п.
РАЗРЯДНОСТЬ КОДОВОГО СЛОВА – количество символов в этом слове
0, 1, А, – одноразрядные слова
10, 11, АА, АВ – двухразрядные слова
10010110, ABDBACFB – восьмиразрядные слова
УПРАЖНЕНИЯ
1. Выписать 4 двухразрядных слова, составленных из символов русского
алфавита.
2. Выписать 4 трехразрядных слова, составленных из символов
английского алфавита
3. Выписать 4 трехразрядных слова, составленных из символов 0 и 1
ВОПРОС
А сколько всего можно теоретически составить
1) двухразрядных слов из символов 0 и 1 ?
2) трехразрядных слов из символов 0 и 1 ?
3) N – разрядных слов из символов русского алфавита
ОПРЕДЕЛИМ ОБЩЕЕ КОЛИЧЕСТВО ДВУХРАЗРЯДНЫХ СЛОВ, КОТОРЫЕ МОЖНО
СОСТАВИТЬ ИЗ СИМВОЛОВ 0 И 1
корень
0
0
1
1
0
Одноразрядные
слова
1
Перечислим все слова, читая их от корня дерева: 00, 01, 10,11
ИТОГО ПОЛУЧИЛОСЬ 4 РАЗЛИЧНЫХ ДВУХРАЗРЯДНЫХ СЛОВА
двухразрядные
слова
ОПРЕДЕЛИМ ОБЩЕЕ КОЛИЧЕСТВО ТРЕХРАЗРЯДНЫХ СЛОВ, КОТОРЫЕ МОЖНО
СОСТАВИТЬ ИЗ СИМВОЛОВ 0 И 1
корень
0
1
0
0
1
1
0
0
1
0
1
1
0
Перечислим все слова, читая их от корня дерева: 000, 001, 010,011,
100, 101, 110, 111
ИТОГО ПОЛУЧИЛОСЬ 8 РАЗЛИЧНЫХ ТРЕХРАЗРЯДНЫХ СЛОВ
1
УПРАЖНЕНИЯ
1. Определить при помощи дерева, сколько
можно составить четырехбуквенных слов,
используя символы 0 и 1.
2. Определить без дерева, сколько можно
составить 5-буквенных слов, используя
символы 0 и 1.
3. Запишите в обобщенном виде формулу, по
которой можно определить общее количество
R – буквенных слов, которые можно составить
из символов двоичного алфавита.
УПРАЖНЕНИЯ
1.
2.
3.
4.
5.
Определить при помощи дерева, сколько всего можно
составить двухбуквенных слов из символов троичного
алфавита (например, A, B, C).
Определить при помощи дерева, сколько всего можно
составить трехбуквенных слов из символов троичного
алфавита (например, A, B, C).
Определить без дерева, сколько всего можно составить
четырехбуквенных слов из символов троичного алфавита
(например, A, B, C).
Запишите в обобщенном виде формулу, по которой можно
определить общее количество R – буквенных слов, которые
можно составить из символов троичного алфавита.
Запишите в обобщенном виде формулу, по которой можно
определить общее количество R – буквенных слов, которые
можно составить из символов P - ричного алфавита.
УНИВЕРСАЛЬНАЯ ФОРМУЛА
N=
R
P
N – определить общее количество R – буквенных слов, которые
можно составить из символов P - ричного алфавита
P – количество символов в алфавите (мощность алфавита)
R – количество символов в слове (разрядность слова)
УПРАЖНЕНИЯ
1. Закодировать все символы русского алфавита
при помощи символов 0 и 1.
2. Какова разрядность полученных кодовых
слов?
3. Закодировать при помощи полученных кодов
свою фамилию, имя и отчество.
4. Проделать пункты с 1 по 3, только в
английском алфавите.
5. Сравнить длины закодированных сообщений
и сделать вывод.
ЗАДАЧИ
1. Определить общее количество кодовых
комбинаций, если для кодирования использовали
трехсимвольный алфавит и составляли
семиразрядные кодовые слова.
2. Определить разрядность кодовых слов, если
известно, что для их составления использовали
восьмисимвольный алфавит и всего было
составленно 64 слова.
3. Сколько символов в алфавите, который
использовали для составления кодовых слов, если
известно, что с их помощью составили всего 64
трехразрядных слова?
ДЕКОДИРОВАНИЕ РАВНОМЕРНЫХ
КОДОВ
1. Определяем разрядность (R) кодовых слов.
2. Разбиваем сообщение на группы по R символов
в каждой.
3. Декодируем каждую группу по отдельности.
4. Записываем декодированное сообщение
Декодировать равномерные коды можно с
начала сообщения или с конца!
Занимательные задачи, решаемые
при помощи деревьев
Задача 1
Для составления цепочек разрешается использовать бусины 5
типов, обозначаемых буквами А, Б, В, Е, И. Каждая цепочка
должна состоять из трех бусин, при этом должны соблюдаться
следующие правила:
а) на первом месте стоит одна из букв: А, Е, И,
б) после гласной буквы в цепочке не может снова идти гласная, а
после согласной – согласная,
в) последней буквой не может быть А.
Запишите все цепочки, которые можно получить согласно этим
правилам. Сколько таких различных цепочек всего? Сколько
можно было бы составить цепочек из бусин, если бы не было
перечисленных выше правил?
Занимательные задачи, решаемые
при помощи деревьев
Задача 2
При составлении расписания на вторник учителя
высказали свои пожелания по поводу
расположения первых пяти уроков. Учитель
математики (М) хочет иметь первый или
второй урок, учитель физики (Ф) – второй или
третий, учитель информатики (И) – первый или
четвертый, учитель биологии (Б) – третий или
четвертый. Какое расписание устроит всех
учителей? (РЕШИТЬ ЧЕРЕЗ ДЕРЕВО)
НЕРАВНОМЕРНОЕ
КОДИРОВАНИЕ
Цель неравномерного кодирования –
минимизация кодовых слов
УПРАЖНЕНИЕ: Получить минимально - возможные двоичные коды для
букв А, Б, В, Г и Д
1. Получим равномерные двоичные коды
корень
0
0
0
А
1
1
1
Б
0
В
0
1
Г
0
Д
1
1
0
1
УПРАЖНЕНИЕ: Получить минимально - возможные двоичные коды для
букв А, Б, В, Г и Д
2. Минимизируем полученные двоичные коды
корень
0
0
1
А
0
1
0
Б
1
0
1
В
1
0
1
1
Г
А – 00, Б – 01, В – 10, Г – 11,
1
Д
ПРАВИЛО МИНИМИЗАЦИИ
КОДОВЫХ СЛОВ
при движении от корня дерева к любой букве в середине
пути не должно встречается других букв (условие Фано).
корень
0
0
1
А
0
1
0
Б
1
0
1
Г
В
1
0
1
1
1
Д
Для букв Г и Д не выполняется условие Фано
ОБЩИЙ ПЛАН ПОЛУЧЕНИЯ
НЕРАВНОМЕРНЫХ КОДОВ
1. Получить равномерные коды
2. Если на предыдущем уровне дерева есть
свободные позиции, то переносим на него
возможное количество символов, так,
чтобы выполнялось условие Фано.
3. Выписываем полученные коды
ЗАДАНИЯ
1. Получить минимально - возможные
двоичные коды для букв русского
алфавита.
2. Закодировать свою Фамилию, Имя и
Отчество.
3. Сравнить количество символов в
полученном сообщении с тем, что
получалось при равномерном
кодировании.
ЗАДАНИЯ
4. Получить минимально – возможные
троичные коды для символов русского
алфавита.
5. Можно ли минимизировать длину
одновременно для всех кодовых слов?
Ответ аргументировать.
ДЕКОДИРОВАНИЕ
НЕРАВНОМЕРНЫХ КОДОВ
Декодирование
неравномерных кодов
однозначное
неоднозначное
С начала (слева направо)
С конца (справа налево)
(если выполняется
условие Фано С начала)
(если выполняется
условие Фано С конца)
Если не выполняется
ни одно из условий
Фано
ПРОВЕРКА УСЛОВИЯ Фано С начала
1.
2.
Строим дерево и размещаем на нем все коды (читая код слева направо)
Проверяем выполнимость условия Фано С начала
Пример
Дано
А – 00
Б – 01
В – 10
Г – 11
Д - 111
Можно ли однозначно
декодировать сообщение,
закодированное при
помощи этих кодов,
начиная процесс
декодирования с начала?
корень
0
0
1
А
0
1
0
Б
1
0
1
Г
В
1
0
1
1
1
Д
Как видно из дерева – нельзя, так как есть
символы, для которых не выполняется условие
Фано С начала! (Г и Д)
ПРОВЕРКА УСЛОВИЯ Фано С конца
1.
2.
Строим дерево и размещаем на нем все коды (читая код справа налево)
Проверяем выполнимость условия Фано С Конца
Пример
Дано
А – 00
Б – 01
В – 10
Г – 11
Д - 110
корень
0
0
1
0
В
А
0
1
1
0
1
Г
Б
1
0
1
1
1
Д
Можно ли однозначно
декодировать сообщение,
закодированное при
помощи этих кодов,
начиная процесс
декодирования с начала?
Как видно из дерева – нельзя, так как есть
символы, для которых не выполняется условие
Фано С конца! (В и Д)
РЕШЕНИЕ ЗАДАЧ
ПЛАН
1. Проверить выполнимость условия Фано С
начала и решить задачу.
2. Проверить выполнимость условия Фано С
конца и решить задачу.
ЗАДАЧА 1
Для 5 букв латинского алфавита заданы их
двоичные коды (для некоторых букв - из
двух бит, для некоторых - из трех). Эти
коды представлены в таблице:
a
b
c
d
e
000
110
01
001
10
Определите, какой набор букв закодирован
двоичной строкой 1100000100110
1) baade 2) badde 3) bacde 4) bacdb
ЗАДАЧА 2
Для передачи по каналу связи сообщения,
состоящего только из букв А, Б, В, Г, решили
использовать неравномерный по длине
код: A=1, Б=01, В=001. Как нужно
закодировать букву Г, чтобы длина кода
была минимальной и допускалось
однозначное разбиение кодированного
сообщения на буквы?
1) 0001 2) 000
3) 11
4) 101
ЗАДАЧА 3
Для кодирования сообщения, состоящего только из букв О,
К, Л, М и Б, используется неравномерный по длине
двоичный код:
О
К
Л
М
Б
00
01
11
010
0110
Какое (только одно!) из четырех полученных сообщений
было передано без ошибок и может быть
раскодировано:
1) 110001001001110
2) 10000011000111010
3) 110001001101001
4) 1000110001100010
ПРОЕКТ ПО ТЕМЕ
«РАВНОМЕРНОЕ И
НЕРАВНОМЕРНОЕ
КОДИРОВАНИЕ»
ВИЗИТНАЯ КАРТОЧКА ПРОЕКТА
Download