Задание 1. Тип заданий 5: кодирование информации.
  • Задание:

    По каналу связи передаются сообщения, содержащие пять букв: Б, О, Ш, К, А. Для передачи используется неравномерный двоичный код, допускающий однозначное кодирование. Для букв Б, О, Ш, К используются такие кодовые слова: Б: 111, О: 100, Ш: 101, К: 0.
    Укажите кратчайшее кодовое слово для буквы А, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.

  • Решение:

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

    Обратите внимание, в задании у буквы К указан код 0. Соответственно, код буквы А не может начинаться с нуля. Кроме того, код буквы А не может быть двузначным, т.к. коды 10 и 11 являются началом кодов букв О и Б. Коды 100 и 101 уже используются буквами О и Ш, получается, что минимальный кратчайший код для буквы А — 110.

    Ответ: 110

Поделиться:
 
Комментарии (4)
Роман Измайлов # 9 июня 2016 в 15:21 0
Здравствуйте! При решении задач такого типа необходимо проверять только прямое условие Фано, или обратное тоже? достаточно ведь только выполнения одного из них, значит если подобрать какое-либо число (соответствующее обратному условию Фано, но не соответствующее прямому), которое короче чем то, что соответствует прямому условию Фано, то в ответ нужно записать его?
Роман Измайлов # 9 июня 2016 в 22:13 0
если проверять по обратному условию, тогда кратчайший код - 011, разве нет?
Никита Панафидин # 10 июня 2016 в 13:55 0
Число не должно начинаться на 0, поскольку 0 уже является буквой К. Итоговое число должно однозначно декадироваться, поэтому 0 в начале недопустим.
Роман Измайлов # 11 июня 2016 в 00:50 0
я прекрасно понимаю формулировку Условию Фано, но для однозначного декодирования достаточно того, чтобы либо какое-нибудь число не являлось началом другого числа, либо чтобы какое-нибудь число не являлось концом другого ( именно одно из двух, так что даже если прямое условие Фано не выполняется, можно рассмотреть обратное, и если оно выполняется, то число подходит). В этом задании я уже разобрался, обратное условие не подходит, т.к. число к=0 является концом числа о=100, поэтому проверяем только прямое условие, но вот например задание с этого же сайта на эту тему под номером 7 содержит такое условие: С: 110, Т: 001, У: 111, надо найти кратчайшее Л. Вот тут в данных уже числах соблюдается и прямое и обратное условие Фано, значит проверять числа нужно по 2 условиям, тогда по прямому условию - кратчайшее число = 01, а по обратному - 00, значит кратчайшее 00, а не 01, как написано в ответе на сайте.
Перевести число из в Результат: 510 = 1012