Что значит однозначное декодирование
Кодирование информации
Определение: |
Кодирование информации (англ. information coding) — отображение данных на кодовые слова. |
Обычно в процессе кодирования информация преобразуется из формы, удобной для непосредственного использования, в форму, удобную для передачи, хранения или автоматической обработки. В более узком смысле кодированием информации называют представление информации в виде кода. Средством кодирования служит таблица соответствия знаковых систем, которая устанавливает взаимно однозначное соответствие между знаками или группами знаков двух различных знаковых систем.
Содержание
Код [ править ]
Виды кодов [ править ]
Все вышеперечисленные коды являются однозначно декодируемыми — для такого кода любое слово, составленное из кодовых слов, можно декодировать только единственным способом.
Примеры кодов [ править ]
Однозначно декодируемый код [ править ]
Определение: |
Однозначно декодируемый код (англ. uniquely decodable code) — код, в котором любое слово составленное из кодовых слов можно декодировать только единственным способом. |
Пусть есть код заданный следующей кодовой таблицей:
[math]a_1 \rightarrow b_1[/math]
[math]a_2 \rightarrow b_2[/math]
[math]a_k \rightarrow b_k[/math]
Код является однозначно декодируемым, только тогда, когда для любых строк, составленных из кодовых слов, вида:
Всегда выполняются равенства:
Заметим, что если среди кодовых слов будут одинаковые, то однозначно декодировать этот код мы уже не сможем.
Префиксный код [ править ]
Определение: |
Префиксный код (англ. prefix code) — код, в котором никакое кодовое слово не является префиксом какого-то другого кодового слова. |
Предпочтение префиксным кодам отдается из-за того, что они упрощают декодирование. Поскольку никакое кодовое слово не выступает в роли префикса другого, кодовое слово, с которого начинается файл, определяется однозначно, как и все последующие кодовые слова.
Пример кодирования [ править ]
Закодируем строку [math]abacaba[/math] :
Такой код можно однозначно разбить на слова:
[math]00\ 01\ 00\ 1\ 00\ 01\ 00[/math]
Преимущества префиксных кодов [ править ]
Недостатки префиксных кодов [ править ]
Пример неудачного декодирования [ править ]
Предположим, что последовательность [math]abacaba[/math] из примера передалась неверно и стала:
[math]c^<**>(abacaba) = 0001001\ 1\ 00100[/math]
Разобьем ее согласно словарю:
[math] 00\ 01\ 00\ 1\ 1\ 00\ 1\ 00[/math]
[math]a\quad b\quad a\ c\ c\quad a\ c\ a[/math]
Полученная строка совпадает только в битах, которые находились до ошибочного, поэтому декодирование неравномерного кода, содержащего ошибки, может дать абсолютно неверные результаты.
Не префиксный однозначно декодируемый код [ править ]
Как уже было сказано, префиксный код всегда однозначно декодируем. Обратное в общем случае неверно:
Мы можем ее однозначно декодировать, так как знаем, что слева от двойки и справа от тройки всегда стоит единица.
После декодирования получаем: [math]abbca[/math]
Что значит однозначное декодирование
Для кодирования растрового рисунка, напечатанного с использованием шести красок, применили неравномерный двоичный код. Для кодирования цветов используются кодовые слова.
Белый — 0, Зелёный — 11111, Фиолетовый — 11110, Красный — 1110, Чёрный — 10. Укажите кратчайшее кодовое слово для кодирования синего цвета, при котором код будет допускать однозначное декодирование.
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Заметим, что кодовые слова, начинающиеся с 0, мы взять не можем, поскольку Белый уже закодирован кодовым словом 0. Кодовое слово 10 занято Чёрным. Кодовые слова, состоящие только из единиц, составить нельзя, иначе однозначное декодирование будет негарантированно. Значит, можем взять кодовое слово 110.
По каналу связи передаются сообщения, содержащие только 4 буквы: С, Л, О, Н; для передачи используется двоичный код, допускающий однозначное декодирование. Для букв С, О, Н используются такие кодовые слова: С: 011, О: 00, Н: 11. Укажите такое кодовое слово для буквы Л, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите тот, у которого меньшая длина.
Для того, чтобы код можно было однозначно декодировать, необходимо, чтобы выполнялось условие Фано: никакое кодовое слово не должно являться началом другого кодового слова.
Вариант «1» не удовлетворяет условию Фано. Вариант «10» — удовлетворяет. Вариант «010» удовлетворяет условию Фано. Вариант «0» не удовлетворяет условию Фано.
Выбирая из второго и третьего варианта, останавливаемся на втором, поскольку он короче.
Правильный ответ указан под номером 2.
По каналу связи передаются сообщения, содержащие только 4 буквы: А, Т, О, М; для передачи используется двоичный код, допускающий однозначное декодирование. Для букв Т, О, М используются такие кодовые слова: Т: 100, О: 00, М: 11. Укажите такое кодовое слово для буквы А, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите тот, у которого меньшая длина.
Для того, чтобы код можно было однозначно декодировать, необходимо, чтобы выполнялось условие Фано: никакое кодовое слово не должно являеться началом другого кодового слова.
Вариант «1» не удовлетворяет условию Фано. Вариант «0» — не удовлетворяет. Вариант «01» удовлетворяет условию Фано. Вариант «101» удовлетворяет условию Фано.
Выбирая из четвёртого и третьего варианта, останавливаемся на третьем, поскольку он короче.
Правильный ответ указан под номером 3.
По каналу связи передаются сообщения, содержащие только 4 буквы К, О, Р, А; для передачи используется двоичный код, допускающий однозначное декодирование. Для букв Р, А, К используются такие кодовые слова:
Укажите такое кодовое слово для буквы О, при котором код будет допускать однозначное декодирование. Если таких кодовых слов несколько, укажите то, у которого меньшая длина.
Для того, чтобы код можно было однозначно декодировать, необходимо, чтобы выполнялось условие Фано: никакое кодовое слово не должно являться началом другого кодового слова.
Вариант «1» не удовлетворяет условию Фано. Вариант «0» — не удовлетворяет. Вариант «11» удовлетворяет условию Фано. Вариант «001» удовлетворяет условию Фано.
Выбирая из четвёртого и третьего варианта, останавливаемся на третьем, поскольку он короче.
Правильный ответ указан под номером 3.
По каналу связи передаются сообщения, содержащие только 4 буквы П, О, С, Т; для передачи используется двоичный код, допускающий однозначное декодирование. Для букв Т, О, П используются такие кодовые слова:
Укажите такое кодовое слово для буквы С, при котором код будет допускать однозначное декодирование. Если таких кодовых слов несколько, укажите тот, у которого меньшая длина.
Для того, чтобы код можно было однозначно декодировать, необходимо, чтобы выполнялось условие Фано: никакое кодовое слово не должно являться началом другого кодового слова.
Вариант «1» не удовлетворяет условию Фано. Вариант «0» — не удовлетворяет. Вариант «00» удовлетворяет условию Фано. Вариант «110» удовлетворяет условию Фано.
Выбирая из четвёртого и третьего варианта, останавливаемся на третьем, поскольку он короче.
Правильный ответ указан под номером 3.
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность, появляющуюся на приёмной стороне канала связи. Для букв А, Б, В и Г использовали такие кодовые слова: А–111, Б–110, В–100, Г–101.
Укажите, каким кодовым словом может быть закодирована буква Д. Код должен удовлетворять свойству однозначного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них.
Мы видим, что выполняется условие Фано: никакое кодовое слово не является началом другого кодового слова, поэтому однозначно можем раскодировать сообщение с начала.
Чтобы закодировать Д, необходимо выполнение условия Фано в новом коде.
Каждый из этих вариантов может быть новым словом, т. к. не является началом ни одного из кодовых слов. Поэтому выбираем самое короткое — 0.
Правильный ответ указан под номером 1.
Укажите, каким кодовым словом из перечисленных ниже может быть закодирована буква Д. Код должен удовлетворять свойству однозначного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них.
Для того, чтобы сообщение, записанное с помощью неравномерного по длине кода, однозначно раскодировалось, требуется, чтобы никакой код не был началом другого (более длинного) кода.
Рассмотрим варианты для буквы Д, начиная с самого короткого.
1) Д=10: код буквы Д является началом кода буквы Б=101, поэтому этот вариант не подходит.
2) Д=11: код буквы Д является началом кода буквы В=111, Д=110, поэтому этот вариант не подходит.
3) Д=000: код буквы Д не является началом другого кода, следовательно, это правильный ответ.
4) Д=1111: код буквы Д является началом кода буквы В=111, поэтому этот вариант не подходит.
Правильный ответ указан под номером 3.
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность, появляющуюся на приёмной стороне канала связи. Для букв А, Б, В и Г использовали такие кодовые слова: А — 001, Б — 010, В— 000, Г — 011.
Укажите, каким кодовым словом из перечисленных ниже может быть закодирована буква Д.
Код должен удовлетворять свойству однозначного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них.
Для того, чтобы сообщение, записанное с помощью неравномерного по длине кода, однозначно раскодировалось, требуется, чтобы никакой код не был началом другого (более длинного) кода.
Рассмотрим варианты для буквы Д, начиная с самого короткого.
1) Д=00: код буквы Д является началом кода буквы В=000, поэтому этот вариант не подходит.
2) Д=01: код буквы Д является началом кода буквы Б=010, Г=011, поэтому этот вариант не подходит.
3) Д=101: код буквы Д не является началом другого кода, следовательно, это правильный ответ.
Правильный ответ указан под номером 3.
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность, появляющуюся на приёмной стороне канала связи. Для букв А, Б, В и Г использовали такие кодовые слова: А — 111, Б — 110, В — 101, Г — 100.
Укажите, каким кодовым словом из перечисленных ниже может быть закодирована буква Д. Код должен удовлетворять свойству однозначного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них.
Для того, чтобы сообщение, записанное с помощью неравномерного по длине кода, однозначно раскодировалось, требуется, чтобы никакой код не был началом другого (более длинного) кода. Рассмотрим варианты для буквы Д, начиная с самого короткого.
1) Д=1: код буквы Д является началом всех представленных кодов букв, поэтому этот вариант не подходит.
2) Д=0: код буквы Д не является началом другого кода, поэтому этот вариант подходит.
3) Д=01: код буквы Д не является началом другого кода, поэтому этот вариант подходит.
4) Д=10: код буквы Д является началом кодов букв В и Г, следовательно, этот вариант не подходит.
Таким образом, подходят два варианта: 0 и 01. 0 короче, чем 01.
Правильный ответ указан под номером 2.
По каналу связи передаются сообщения, содержащие только четыре буквы: А, Б, В, Г; для передачи используется двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В используются такие кодовые слова: А — 0;
Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Для того, чтобы сообщение, записанное с помощью неравномерного по длине кода, однозначно раскодировалось, требуется, чтобы никакой код не был началом другого (более длинного) кода.
Рассмотрим варианты для буквы Г, начиная с самого короткого.
1) Г=1: код буквы Г является началом кода буквы Б — 110, поэтому этот вариант не подходит.
2) Если код Г=01, то условие Фано нарушается, поскольку тогда код буквы А является началом кода буквы Г.
3) Если код Г=101, то условие Фано не нарушается. Данное кодовое слово является кратчайшим для буквы Г.
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В, Г использовали соответственно кодовые слова 000, 001, 10, 11. Укажите кратчайшее возможное кодовое слово для буквы Д, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением. Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Однозначные коды не подходят по условию Фано. Кратчайшее подходящее кодовое слово — 01. Но выбирая его, не останется вариантов закодировать букву E, значит, нужно взять минимум трехзначный код. Минимальный из них, подходящий по условию Фано — 010. Тогда букву Е можно закодировать как 011.
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В, Г использовали соответственно кодовые слова 000, 001, 10, 11. Укажите кратчайшее возможное кодовое слово для буквы Д, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением. Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Поскольку все однозначные и двузначные слова не подходят по условию Фано, нужно найти трехзначное слово, которое было бы максимально и удовлетряло условию. Так как 111, 101 и 110 нарушают условие Фано, то искомое слово — 010.
Заметим, что двузначное кодовое слово 01 не подходит, поскольку при его использовании нельзя подобрать кодовое слово для буквы Е.
Дублирует задание 13481.
По каналу связи передаются сообщения, содержащие только шесть букв: А, B, C, D, E, F. Для передачи используется неравномерный двоичный код, удовлетворяющий условию Фано. Для букв A, B, C используются такие кодовые слова: А — 11, B — 101, C — 0. Укажите кодовое слово наименьшей возможной длины, которое можно использовать для буквы F. Если таких слов несколько, укажите то из них, которое соответствует наименьшему возможному двоичному числу. Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование
Поскольку все однозначные и двузначные слова не подходят по условию Фано, значит, нужно найти трехзначное слово, которое было бы минимально и удовлетворяло условию. Это слово — 100. Однако при выборе кода 100 мы закрываем возможные варианты для D И E. Значит, трехзначные слова нам тоже не подходят, если взять четырехзначные то там мы для кодирования можем взять слово 1000. Тогда для кодирования D и E можно использовать слова 10010 и 10011.
Кодирование и декодирование. Условие ФАНО
Содержимое разработки
Кодирование – перевод информации с одного языка на другой (запись в другой системе символов, в другом алфавите).
Декодирование – это восстановление сообщения из последовательности кодов.
В качестве кодового алфавита часто используют двоичный алфавит, состоящий из двух символов (битов) 0 и 1.
При кодировании используют
равномерные и неравномерные коды.
Равномерные коды – все кодовые слова (коды отдельных букв)
имеют одинаковую длину.
МАМА МЫЛА ЛАМУ: 000 001 000 001 101 000 010 011 001 101 011 001 000 100
Равномерные коды позволяют однозначно декодировать сообщения.
кодовые слова имеют разную длину
Чтобы однозначно декодировать текст, закодированный при помощи неравномерных кодов, коды должны удовлетворять условиям Фано.
Прямое условие Фано. Неравномерный код может быть однозначно декодирован, если никакой из кодов не совпадает с началом какого-либо другого, более длинного кода. Такой код называют «префиксным».
Обратное условие Фано. Неравномерный код может быть однозначно декодирован, если никакой из кодов не совпадает с окончанием какого-либо другого, более длинного кода. Такой код называют «постфиксным».
Почему необходимо соблюдение условия Фано
при неравномерном кодировании?
Исходный алфавит – алфавит русских букв, строчные и прописные буквы не различаются. Размер алфавита – 33 символа.
Применяется побуквенное кодирование по следующему правилу:
буква кодируется ее номером в алфавите: код буквы А – 1; буквы Я – 33 и т.д.
Тогда код слова АББА – это 1221.
Последовательность 1221 может означать не только АББА,
но и КУ (К – 12-я буква в алфавите, а У – 21-я буква).
Префиксный код – ни одно кодовое слово не совпадает
с началом другого кодового слова.
Любой префиксный код позволяет
однозначно декодировать сообщения.
Постфикс = окончание слова.
Постфиксный код – ни одно кодовое слово не совпадает
с концом другого кодового слова
10 00 10 00 11 10 1101 001 00 11 001 00 10 0101
М А М А М Ы Л А Л А М У
Любой постфиксный код позволяет однозначно декодировать сообщения (с конца).
Для однозначного декодирования достаточно выполнения хотя бы одного из двух условий Фано:
– при выполнении прямого условия Фано последовательность кодов однозначно декодируется с начала;
– при выполнении обратного условия Фано последовательность кодов однозначно декодируется с конца.
ПОСТРОЕНИЕ ДЕРЕВА ФАНО
Дерево Фано – это удобный и наглядный способ решения задач, связанных с подбором неравномерных двоичных кодов.
Основные принципы построения дерева Фано:
обеспечивается тогда, когда все
кодовые слова заканчиваются на
Для букв Т, Е, П используются такие кодовые слова: Т: 111, Е: 0, П: 100.
Кодовые слова для некоторых букв известны: А — 001, И — 01, С — 10.
Какое наименьшее количество двоичных знаков потребуется для кодирования слова КОЛОБОК?
Для передачи используется двоичный код, удовлетворяющий условию Фано.
Для буквы И используется кодовое слово 1; для буквы О используется кодовое слово 01.
Какова минимальная общая длина кодовых слов для всех пяти букв?
Какое кодовое слово соответствует букве Н?
Определите, какое число передавалось по каналу в виде 01100010100100100110.
1) используется код равномерной длины; т.к. 2 знака кодируются 10 двоичными разрядами (битами), на каждую цифру отводится 5 бит, то есть 2 → 00101 и 3 → 00110
2) 4 первых бита в каждой последовательности – это двоичный код цифры, а 5-ый бит (бит четности) используется для проверки и рассчитывается как «сумма по модулю два»,
то есть остаток от деления суммы бит на 2; тогда
3) пятый бит в каждой пятерке можно отбросить!
4) разобьем последовательность на группы по 5 бит в каждой: 01010, 10010, 01111, 00011.
5)отбросим пятый (последний) бит в каждой группе: 0101, 1001, 0111, 0001.
это и есть двоичные коды передаваемых чисел: 0101 2 = 5, 1001 2 = 9, 0111 2 = 7, 0001 2 = 1.
6)таким образом, были переданы числа 5, 9, 7, 1 или число 5971.
4 задание егэ информатика про кодирование и расшифровку сообщений
Кодирование информации
4-е задание: «Кодирование и декодирование информации»
Уровень сложности — базовый,
Требуется использование специализированного программного обеспечения — нет,
Максимальный балл — 1,
Примерное время выполнения — 2 минуты.
Проверяемые элементы содержания: Умение кодировать и декодировать информацию
«Из-за невнимательного чтения условия задания экзаменуемые иногда не замечают, что требуется найти кодовое слово минимальной длины с максимальным (минимальным) числовым значением.
Кроме того, если в задании указано, что несколько букв остались без кодовых слов (как, например, в задании демоварианта), то кодовое слово для указанной буквы должно быть подобрано таким образом, чтобы осталась возможность найти кодовые слова, удовлетворяющие условию Фано, и для других букв. Так, например, если мы букву А закодируем нулём, а букву Б единицей, то букву В мы уже никак не сможем закодировать с соблюдением условия Фано, поэтому длину кодового слова для А или Б следует увеличить»
Таким образом, мы получили равномерный код, т.к. длина каждого кодового слова одинакова для всех кодов (2).
Кодирование и расшифровка сообщений
Для решения задач с декодированием, необходимо знать условие Фано:
Однозначное декодирование обеспечивается:
Решение 4 заданий ЕГЭ
Задание демонстрационного варианта 2022 года ФИПИ
Плейлист видеоразборов задания на YouTube:
Закодируйте последовательность букв ВОДОПАД таким способом и результат запишите восьмеричным кодом.
✍ Решение:
Результат: 22162
Решение ЕГЭ данного задания по информатике, видео:
Рассмотрим еще разбор 4 задания ЕГЭ:
a | b | c | d | e |
---|---|---|---|---|
000 | 110 | 01 | 001 | 10 |
✍ Решение:
Результат: b a c d e.
- Этот вариант решения 4 задания ЕГЭ более сложен, но тоже верен.
Результат: b a c d e.
Кроме того, вы можете посмотреть видео решения этого задания ЕГЭ по информатике:
Решим следующее 4 задание:
✍ Решение:
Ответ: 6 5 4 3
Вы можете посмотреть видео решения этого задания ЕГЭ по информатике:
Какова наименьшая возможная суммарная длина всех четырёх кодовых слов?
✍ Решение:
Ответ: 9
✍ Решение:
Результат: 00
✍ Решение:
Результат: 101
Подробней разбор урока можно посмотреть на видео ЕГЭ по информатике 2017:
Укажите кратчайшее кодовое слово для буквы Б, при котором код будет удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.
✍ Решение:
Результат: 1100
Подробное решение данного 4 (раньше №5) задания из демоверсии ЕГЭ 2018 года смотрите на видео:
Укажите кратчайшее кодовое слово для буквы Г, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
✍ Решение:
Дерево по условию Фано (однозначно декодируется с начала):
Дерево по обратному условию Фано (однозначно декодируется с конца):
Результат: 00
По каналу связи передаются сообщения, содержащие только буквы: А, Е, Д, К, М, Р; для передачи используется двоичный код, удовлетворяющий условию Фано. Известно, что используются следующие коды:
Укажите наименьшую возможную длину закодированного сообщения ДЕДМАКАР.
В ответе напишите число – количество бит.
✍ Решение:
Результат: 20
Смотрите виде решения задания: