Similar presentations:
ЕГЭ-2022. Разбор задания 4 информатика
1.
ЕГЭ-2022РАЗБОР ЗАДАНИЯ 4
ИНФОРМАТИКА
Кодирование и декодирование информации
2.
ВведениеВ данном уроке мы рассмотрим такие понятия как «Условие Фано»
и «Префиксный код» , научимся строить бинарные деревья, а так
же рассмотрим разные типы задач на тему «Кодирование и
декодирование информации».
3.
ТЕОРИЯУсловие Фано и Префиксный код
4.
Условие ФаноПрямое условие Фано.
Неравномерный код может быть однозначно
декодирован, если никакой из кодов не совпадает с
началом (префиксом) какого-либо другого, более
длинного кода.
Такой код называют «префиксным».
5.
Условие ФаноОбратное условие Фано.
Неравномерный код может быть однозначно
декодирован, если никакой из кодов не совпадает с
окончанием (постфиксом) какого-либо другого, более
длинного кода.
Такой код называют «постфиксным».
6.
Префиксный кодПрефиксный код— код со словом переменной длины, имеющий такое свойство (выполнение
условия Фано): если в код входит слово a, то для любой непустой строки b слова ab в коде не
существует.
Например, код, состоящий из слов 0, 10 и 11, является префиксным, и сообщение 01001101110 можно
разбить на слова единственным образом:
0 10 0 11 0 11 10
Код, состоящий из слов 0, 10, 11 и 100, префиксным не является, и то же сообщение можно трактовать
несколькими способами.
0 10 0 11 0 11 10
0 100 11 0 11 10
7.
Бинарное деревоБинарное дерево— это иерархическая структура данных, в которой каждый
узел имеет значение и ссылки на левого и правого потомка. Узел,
находящийся на самом верхнем уровне называется корнем. Узлы, не
имеющие потомков называются листьями.
8.
Бинарное дерево. Термины◦ Узел (вершина) — это каждый элемент бинарного дерева;
◦ Ветви — связи между узлами;
◦ Глубина (высота) — наибольший уровень какого-нибудь элемента;
◦ Лист (терминальный узел) — термин применяется, если элемент не имеет потомков;
◦ Внутренние узлы — узлы ветвления;
◦ Степень внутреннего узла — число его потомков (наибольшая степень всех
существующих узлов — это степень всего бинарного дерева);
◦ Длина пути к x — количество ветвей, которые необходимо пройти от корня до текущего
узла x. Длина пути самого корня равна нулю, а узел на уровне i обладает длиной пути,
которая равна i.
9.
ПостроениеБинарного
дерева
Нарисуем корень нашего
дерева из которого будут
расти ветви.
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
10.
ПостроениеБинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
Вырастим две ветки
* Из одного корня могу выходить только
две ветки
11.
01
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
Пронумеруем ветки двоичным
кодом слева → направо
12.
01
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
Вырастим два листика.
В дереве появилось два места
для двух букв.
13.
01
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
Как мы видим место больше нет что
бы добавить листик дерева.
В этом случаем листик превращаем
в узел и растим ещё две ветки.
14.
01
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
Левый лист
превращён в узел и
теперь он имеет двух
потомков
15.
10
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
И пронумерую ветки
двоичным кодом
слева → направо
16.
10
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
Теперь есть место для
трёх букв.
17.
Это узел сюдабукву ставить
нельзя
1
0
Это корень сюда
букву ставить
нельзя
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
Это листик сюда
можно
поставить букву
18.
10
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
Места всё ещё не хватает
Правый лист превращу в
узел и выращу две ветки.
19.
ПостроениеБинарного
дерева
1
0
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
0
1
Пронумеруем ветки
двоичным кодом
слева → направо
20.
10
Построение
Бинарного
дерева
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
Выращу два листа
21.
ПостроениеБинарного
дерева
1
0
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
Пронумерую
двоичным кодом
ветки
слева → направо
1
0
1
22.
ПостроениеБинарного
дерева
1
0
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
0
1
0
Место хватает для 4 букв
1
23.
10
0
1
0
Построение
Бинарного
дерева
1
Места всё ещё не хватает
Правый лист превращу в узел и
выращу две ветки
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
24.
10
0
0
1
0
Построение
Бинарного
дерева
1
1
Пронумерую двоичным кодом ветки
слева → направо
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
25.
10
0
0
1
0
Построение
Бинарного
дерева
1
1
Место есть для пяти букв
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
26.
10
0
0
А
1
0
В
Г
Построение
Бинарного
дерева
1
Д
1
Б
Заполню листья буквами
А, Б, В, Г, Д
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
27.
10
0
0
А
1
0
В
Г
Построение
Бинарного
дерева
1
Д
1
Б
Бинарное дерево закончено
Задача: Необходимо
закодировать буква А, Б, В, Г,
Д так что бы полученный код
удовлетворял Условию Фано.
28.
НАЙТИ КОД СИМВОЛА СПОМОЩЬЮ БИНАРНОГО ДЕРЕВА
29.
Код символа по бинарному дереву1
0
Для того что бы найти код
символа посмотрим на наш
корень
1
0
В
0
А
1
Б
0
1
Г
Д
30.
Код символа по бинарному деревуСимвол
Код
1
0
1
0
В
Что бы добрать до листика А от
корня – необходимо двигаться по
левой стороне.
0
А
1
Б
0
1
Г
Д
31.
Код символа по бинарному деревуСимвол
А
Код
0
1
0
1
0
В
От корня спускаюсь в левый узел.
Запишу в таблицу нумерацию ветки
от корня к узлу.
0
А
1
Б
0
1
Г
Д
32.
Код символа по бинарному деревуСимвол
А
Код
00
1
0
От узла спускаюсь ниже на 1 уровень
в левый узел.
Запишу в таблицу нумерацию ветки
от узла к узлу.
1
0
В
0
А
1
Б
0
1
Г
Д
33.
Код символа по бинарному деревуСимвол
Код
А
000
1
0
1
0
В
От узла спускаюсь в листик А.
Запишу в таблицу нумерацию ветки
от узла к листику А.
0
А
1
Б
0
1
Г
Д
34.
Код символа по бинарному деревуСимвол
Код
А
000
1
0
1
0
В
Получился маршрут от корня до
листика А которые равен 000.
0
А
1
Б
0
1
Г
Д
35.
Код символа по бинарному деревуСимвол
Код
А
Б
000
1
0
1
0
В
Аналогично найду код символа Б.
0
А
1
Б
0
1
Г
Д
36.
Код символа по бинарному деревуСимвол
Код
А
Б
000
1
0
1
0
В
0
А
1
Б
0
1
Г
Д
37.
Код символа по бинарному деревуСимвол
Код
А
Б
000
0
1
0
1
0
В
0
А
1
Б
0
1
Г
Д
38.
Код символа по бинарному деревуСимвол
Код
А
Б
000
001
1
0
1
0
В
0
А
1
Б
0
1
Г
Д
39.
Код символа по бинарному деревуСимвол
Код
А
Б
В
000
001
01
1
0
1
0
В
Код для буквы В
0
А
1
Б
0
1
Г
Д
40.
Код символа по бинарному деревуСимвол
Код
А
Б
В
Г
000
001
01
10
1
0
1
0
В
Код для буквы Г
0
А
1
Б
0
1
Г
Д
41.
Код символа по бинарному деревуСимвол
Код
А
Б
В
Г
Д
000
001
01
10
11
1
0
1
0
В
Код для буквы Г
0
А
1
Б
0
1
Г
Д
42.
Код символа по бинарному деревуСимвол
Код
А
Б
В
Г
Д
000
001
01
10
11
43.
СОКРАЩЕНИЕДВОИЧНОГО КОДА
Тип задачи №1
44.
Задача 1Для кодирования некоторой последовательности, состоящей из букв А, Б,
В, Г и Д, используется неравномерный двоичный код, позволяющий
однозначно декодировать полученную двоичную последовательность.
Вот этот код: А – 10; Б – 11; В – 000; Г – 001; Д – 010.
Как можно сократить длину кодового слова для буквы Д так, чтобы код попрежнему можно было декодировать однозначно?
Коды остальных букв меняться не должны. Если есть несколько вариантов,
выберите кодовое слово с минимальным значением.
45.
Задача 1Построим бинарное
дерево.
Коды листов известны по
условию задачи
Код: А – 10; Б – 11; В – 000; Г
– 001; Д – 010.
46.
01
Задача 1
Код:
0
1
0
1
А – 10;
Б – 11;
В – 000;
А
0
В
1
Г
0
Д
1
Б
Г – 001;
Д – 010.
47.
01
Задача 1
0
1
0
А
0
В
1
Г
0
Д
1
Б
1
Как видим у этого узла два
листочка.
Левый листок Д, а правый
листок пустой.
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
48.
01
Задача 1
0
1
0
А
0
В
1
Г
0
Д
1
Б
1
Как видим у этого узла два
листочка.
Левый листок Д, а правый
листок пустой.
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
49.
01
Задача 1
0
1
0
А
0
В
1
Г
0
Д
1
Б
1
Пустой листочек мы не
используем в кодирование
сообщений, следовательно
его можно отбросить
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
50.
01
Задача 1
0
1
0
А
0
В
1
Г
0
Д
1
1
Б
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
51.
01
Задача 1
0
1
0
А
0
В
1
Б
1
Г
Д
После порезав ветки узел
превратился в листок
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
52.
01
Задача 1
0
1
0
А
0
В
1
Б
1
Г
Д
После порезав ветки узел
превратился в листок (одно
свободное место)
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
53.
01
Задача 1
0
1
0
А
0
В
1
Б
1
Г
Д
Перемещаем опавшую Д в
пустой листок
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
54.
01
Задача 1
0
1
0
Д
0
В
А
1
Б
1
Г
Теперь
код буквы Д равен 01
Как можно сократить длину
кодового слова для буквы Д
так, чтобы код по-прежнему
можно было декодировать
однозначно?
55.
ОтветДлину кодового слова для буквы Д
можно сократить до 01
56.
ВЫБОР КОДА ДЛЯОДНОЙ БУКВЫ
Тип задачи №2
57.
Задача 2По каналу связи передаются сообщения, содержащие только шесть букв: У, Р,
А, Е, Г, Э; для передачи используется двоичный код, удовлетворяющий
условию Фано.
Буквы Е, Р, А, Г, У имеют коды 01, 000, 100, 101, 110 соответственно. Укажите
код наименьшей длины для буквы Э.
Если в качестве кода может быть использовано несколько кодов одинаковой
длины, выбрать тот, числовое значение которого меньше.
58.
01
Задача 2
0
0
1
Буквы Е, Р, А, Г, У имеют
коды 01, 000, 100, 101, 110
соответственно.
1
Е
0
Р
1
0
А
1
Г
0
У
1
59.
01
Букву Э можно
поставить в один из
двух листочков
Задача 2
0
0
1
Укажите код наименьшей
длины для буквы Э.
1
Е
0
Р
1
Э
001
0
А
1
Г
0
У
1
Э
111
60.
Задача 2Сравним два получившихся числа
Двоичная система счисления
001
111
Десятичная система счисления
1
7
Для удобства можно перевести в десятичную систему счисления
0012 = 110
1112 = 710
61.
Задача 2Сравним два получившихся числа
Двоичная система счисления
001
111
Десятичная система счисления
1
7
1<7
62.
Задача 2Сравним два получившихся числа
Двоичная система счисления
001
111
001<111
Десятичная система счисления
1
7
1<7
1 меньше 7, следовательно 001 меньше 111
Ответ: код наименьшей длины для буквы Э - 001
63.
ПОМЕХОУСТОЙЧИВЫЕКОДЫ
Тип задачи №3
64.
Задача 3По каналу связи с помощью равномерного двоичного кода передаются
сообщения, содержащие только 4 буквы: А, Б, В, Г.
Каждой букве соответствует своё кодовое слово, при этом для набора кодовых
слов выполнено такое свойство: любые два слова из набора отличаются не
менее чем в трёх позициях. Это свойство важно для расшифровки
сообщений при наличии помех.
Для кодирования букв Б, В, Г используются 5-битовые кодовые слова: Б –
00001, В – 01111, Г – 10110.
5-битовый код для буквы А начинается с 1 и заканчивается на 0. Определите
кодовое слово для буквы А.
65.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
позиция
Пример
00001
кодовое слово
66.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
Сравним позиции кодовых слов Б, В, Г с позициями кодового слова А
67.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
Сравним первые позиции
кодовых слов А и Б
1
0
1=0?
68.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
1
1=0?
0
Сравним первые позиции кодовых слов А и В
69.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
1
1=1?
Сравним первые позиции кодовых слов А и Г
1
70.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
Теперь сравниваем последние позиции
71.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
0
1
1
0
?
А=Б
0=1
?
А=В
0=1
?
А=Г
0=0
72.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
73.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
У кодового слова буква Б сошлись две позиции.
По условию: любые два слова из набора отличаются не менее чем
в трёх позициях.
У нас уже есть две одинаковые позиции значит остальные три
должны быть различные.
74.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
У кодового слова буква Б сошлись две позиции.
По условию: любые два слова из набора отличаются не менее чем
в трёх позициях.
У нас уже есть две одинаковые позиции значит остальные три
должны быть различные.
75.
Задача 3Буква
Код
А
Б
В
Г
1???0
00001
01111
10110
¬0 (НЕ 0)
Если вторая позиция у кодового слова Г равна 0, следовательно
вторая позиция у кодового слова А равна НЕ Г (¬ г).
76.
Задача 3Буква
Код
А
Б
В
Г
11??0
00001
01111
10110
¬0 (НЕ 0)
Если вторая позиция у кодового слова Г равна 0, следовательно
вторая позиция у кодового слова А равна НЕ Г (¬ г).
77.
Задача 3Буква
Код
А
Б
В
Г
110?0
00001
01111
10110
¬1 (НЕ 1)
78.
Задача 3Буква
Код
А
Б
В
Г
11000
00001
01111
10110
¬1 (НЕ 1)
79.
Задача 3Буква
Код
А
Б
В
Г
11000
00001
01111
10110
Ответ: кодовое слово для буквы А равно 11000
80.
ВЫБОР КОДОВ ДЛЯНЕСКОЛЬКИХ БУКВ
Тип задачи №4
81.
Задача 4Для кодирования некоторой последовательности, состоящей из букв П, О, Е,
Х, А, Л, И, решили использовать неравномерный двоичный код,
удовлетворяющий условию Фано.
Для букв О, Е, А, И использовали соответственно кодовые слова 01, 110,
1010, 001.
Найдите наименьшую возможную суммарную длину всех кодовых слов.
82.
01
Задача 4
0
1
0
Для букв О, Е, А, И
использовали соответственно
кодовые слова 01, 110, 1010,
001.
1
О
0
1
1
0
0
И
Е
0
А
1
1
83.
01
Задача 4
0
1
0
Некоторая
последовательность, состоит
из букв П, О, Е, Х, А, Л, И
1
О
0
П
1
И
1
0
Х
0
А
1
0
1
Е
Л
Для букв П Х Л нет
кода.
Добавим его
самостоятельно.
84.
01
Задача 4
0
1
0
Некоторая
последовательность, состоит
из букв П, О, Е, Х, А, Л, И
1
О
0
П
1
И
1
0
Х
0
А
1
0
1
Е
Л
Оставшийся листик
1011 мы не берём т.к
в нём самое большое
количество знаков
чем в остальных
85.
Задача 4Допишем оставшиеся коды.
П
О
Е
Х
А
Л
И
000
01
110
100
1010
111
001
86.
Задача 4Подсчитаю количество знаков
П
О
Е
Х
А
Л
И
000
01
110
100
1010
111
001
Индекс
П
П1
0
П2
0
П3
0
Колич
ество
3
Индекс
О1
О
0
О2
1
Колич
ество
2
Индекс
Е
Индекс
Х
Индекс
А
Е1
1
Х1
1
А1
1
А2
0
А3
1
Индекс
Л
Индекс
И
Л1
1
И1
0
Л2
1
И2
0
Е2
1
Х2
0
Е3
0
Х3
0
А4
0
Л3
1
И3
1
Колич
ество
3
Количе
ство
3
Колич
ество
4
Колич
ество
3
Колич
ество
3
87.
Задача 4Буква
П
О
Е
Х
А
Л
И
Код
000
01
110
100
1010
111
001
Количество
знаков
3
2
3
3
4
3
3
П+О+Е+Х+А+Л+И = 3+2+3+3+4+3+3 = 21
Ответ: наименьшая возможная суммарная длина всех
кодовых слов равна 21
88.
Примечание◦ Предположим для буквы Л выбрали код 1011
вместо кода 111, тогда
Букв
а
П
О
Е
Х
А
Л
И
Код
000
01
110
100
1010
1011
001
Колич
ество
знаков
3
2
3
3
4
4
1
0
3
П+О+Е+Х+А+Л+И = 3+2+3+3+4+4+3 = 22
0
0
1
1
П И
0
1
О
1
0
0
Х
Е
0
1
А Л
1
89.
ДЕКОДИРОВАНИЕТип задачи №5
90.
Задача 5Заглавные буквы русского алфавита закодированы неравномерным двоичным
кодом, в котором никакое кодовое слово не является началом другого
кодового слова. Это условие обеспечивает возможность однозначной
расшифровки закодированных сообщений.
Известно, что все кодовые слова содержат не меньше двух и не больше трёх
двоичных знаков, а слову КАПОТ соответствует код 11000111110011. Какой
код соответствует слову ТОК?
91.
Задача 5Рассмотрим внимательно код 11000111110011
С первого взгляда можно сказать что количество 1
больше чем количество 0, из чего можно сделать
вывод что левая ветка будет иметь минимум
третий уровень, т.к. одна буква шифруется тремя
знаками.
Набрасываем бинарное дерево
1
0
1
0
0
1
92.
Задача 5Про просмотре кода
11000111110011
В глаза бросается большое скопление 1 в
середине.
1
0
1
0
0
1
93.
Задача 5Предположим что код 111 - П
11000111110011
Тогда
1
0
1
0
1 1 0 0 0 1 .1 1 1 .1 0 0 1 1
0
* Если 111 листок, следовательно 11 и 1 это узел,
в которых не может быть букв.
1
П
94.
Задача 5От 111 справа на лево распределим ещё две буквы
под два символа
110.001.111.10011
1
0
Поскольку кодовое слово начинается на К,
то 110 – К, следовательно 001 – А.
0
Дорисовываем дерево.
*Если 110 или 001 листок,
следовательно 11 и 1 это узел, в которых не может
быть букв.
1
0
1
А
1
0
0
1
К
П
95.
Задача 50
1
Осталось 5 символов которые можно
разложить на 100 и 11, или на 10 и 011
110.001.111.10011
Листок 100 существует А вот листочка 11
быть не может. Мы уже сказали что это узел,
а в узле не может быть буквы. Это вариант
вычёркиваем.
0
0
1
1
А
0
0
1
1
0
1
К П
96.
Задача 5Остался вариант 10 и 011
1
0
110.001.111.10.011
Подставлю буквы соответственно О и Т.
0
1
0
1
О
0
1
А
0
1
Т
0
1
К П
97.
Задача 5Запишем результат в таблицу
К
111
А
001
П
110
О
10
Т
011
98.
Задача 5С помощью таблицы закодируем слово ТОК
К
110
А
001
П
111
О
10
Т
011
О
10
К
110
Ответ: слову ТОК соответствует код 01110110
Т
011
99.
СПИСОКЛИТЕРАТУРЫ
100.
Список литературы◦ 1. Учебник для 11 класса : в 2 ч. Ч. 1 / К. Ю. Поляков, Е. А. Ере- мин. — М. : БИНОМ. Лаборатория
знаний, 2020
◦ 2. Богомолова О.Б., Усенков Д.Ю. Фано и его «коллеги»: растим дерево. // компьютерные
инструменты в школе – 2017 – Выпуск №2 - С. 26-31. Режим доступа:
http://ipo.spb.ru/journal/index.php?article/1873/, свободный.
◦ 3. Задачи для подготовки ЕГЭ https://kpolyakov.spb.ru/school/ege/generate.htm