Тема 4. Кодирование и декодирование – условие Фано

4.06 Декодирование двоичных кодом в буквенные сообщения

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела кодирование и декодирование – условие фано
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#5450

Для 6 букв латинского алфавита заданы их двоичные коды (для некоторых букв — из двух бит, для некоторых — из трех). Эти коды представлены в таблице:

    |     |    |   |     |
  a |  b  | c  | d | e   | f
----|-----|----|---|-----|----
 11 |110  |001 |00 |010  |101

Какой набор букв закодирован двоичной строкой 0010001011011101?

Показать ответ и решение

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

Разбиваем двоичную строку на части (справа налево) с помощью данной в условии таблицы и переписываем, заменяя кодовые слова на буквы: 001|00|010|110|11|101 = cdebaf.

Ответ: cdebaf

Ошибка.
Попробуйте повторить позже

Задача 2#6443

Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв — из двух бит, для некоторых — из трех). Эти коды представлены в таблице:

     |    |   |    |
  a  | b  | c | d  | e
-----|----|---|----|----
 10  |010 |11 |011 |00

Какой набор букв закодирован двоичной строкой 011000101011?

Показать ответ и решение

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

Разбиваем двоичную строку на части (слева направо) с помощью данной в условии таблицы и переписываем ее, заменяя кодовые слова на буквы: 011|00|010|10|11 = debac.

Ответ: debac

Ошибка.
Попробуйте повторить позже

Задача 3#6445

Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв — из двух бит, для некоторых — из трех). Эти коды представлены в таблице:

    |     |   |   |
 X  | Y   |Z  |W  |  I
----|-----|---|---|-----
 10 |011  |00 |01 |110

Какой набор букв закодирован двоичной строкой 100111000011? Буквы не могут повторяться.

Показать ответ и решение

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

Разбиваем двоичную строку на части (слева направо) с помощью данной в условии таблицы (получим 2 возможных случая):

(1) 10|01|110|00|011

(2) 10|011|10|00|011

Во (2) случае мы видим повторение кодовых слов 011 и 10. Значит, случай (2) не подходит (т.к. по условию буквы должны быть различные).

Значит, наш ответ – (1) случай. Перепишем его, заменяя кодовые слова на буквы: 10|01|110|00|011 = XWIZY.

Ответ: XWIZY

Ошибка.
Попробуйте повторить позже

Задача 4#25575

Все заглавные буквы русского алфавита закодированы неравномерным двоичным кодом, в котором никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Известно, что слову КАША соответствует код 011011010. Какое наименьшее количество двоичных знаков может содержать сообщение, кодирующее слово ОСОКА?

Показать ответ и решение

Начнем с расшифровку кодового слова с конца. Букве А не может соответствовать код 0, так как в начале слова есть 0, а в начале должна стоять буква К. 10 подходящий код, но стоит проверить дальше. 010 не может соответствовать А, так как в слове больше нет 010, а буквы А две в слове, 1010 не может по тем же причинам. Далее проверять нет смысла, так как с кодами длиннее мы не уместим вторую букву А. Значит, А - 10. Если перебрать варианты, получается, что 01 10 110 10 единственный подходящий порядок. Выходит, К - 01, А - 10, Ш - 110. Если перерисовать это в дерево, получим, что веточка 00 не занята, буква О встречается два раза, поэтому за 00 подвесим О. Остается разветвить 111 и за 1110 подвесить С. Минимальная длина выходит 12.

Ответ: 12
Рулетка
Вы можете получить скидку в рулетке!