Для кодировки некоторой последовательности, состоящей из букв А, Б, В,

Для кодировки некой последовательности, состоящей из букв А, Б, В, Г и Д, употребляется неравномерный двоичный код, дозволяющий совершенно точно декодировать полученную двоичную последовательность. Вот этот код:

А 00; Б 101; В 011; Г 111; Д 110.

Как можно уменьшить длину кодового слова для буковкы Б так, чтоб код по-прежнему можно было декодировать однозначно? Коды других букв изменяться не обязаны. Если есть несколько вариантов, изберите кодовое слово с наименьшим значением.



Ответ: 01. Почему? Б ведь не может быть 01, потому что В начинается на 01!

Задать свой вопрос
1 ответ

Решение (1 способ, проверка условий Фано):

1) Для конкретного декодирования довольно, чтоб производилось условие Фано либо оборотное условие Фано;

2) Проверяем последовательно варианты 1, 3 и 4; если ни один из их не подойдет, придется избрать вариант 2 (это невероятно);

3) Проверяем вариант 1: А00, Б01, В011, Г101, Д111.

прямое условие Фано не производится (код буковкы Б совпадает с началом кода буковкы В);

обратное условие Фано не производится (код буковкы Б совпадает с окончанием кода буквы Г); потому этот вариант не подходит;

4) Проверяем вариант 3: А00, Б010, В01, Г101, Д111.

прямое условие Фано не производится (код буквы В совпадает с началом кода буквы Б);

оборотное условие Фано не производится (код буквы В совпадает с окончанием кода буковкы Г); потому этот вариант не подходит;

5) Проверяем вариант 4: А00, Б010, В011, Г01, Д111.

прямое условие Фано не выполняется (код буквы Г совпадает с началом кодов букв Б и В); но обратное условие Фано выполняется (код буковкы Г не совпадает с окончанием кодов остальных буковкы); потому этот вариант подходит;

Ответ: 4

Решение (2 метод, дерево):

1) Построим двоичное дерево, в котором от каждого узла отходит две ветки, подходящие выбору последующей цифры кода 0 или 1; разместим на этом дереве буковкы А, Б, В, Г и Д так, чтоб их код выходил как последовательность чисел на рёбрах, сочиняющих путь от корня до данной буковкы (красным цветом выделен код буковкы В 011):

однозначность декодирования получается за счёт того, что при движении от корня к любой буковке в середине пути не встречается иных букв (выполняется условие Фано);

3) Сейчас проверим варианты ответа: предлагается перенести одну из букв, Б, В либо Г, в узел с кодом 01, выделенный синим цветом

4) Лицезреем, что при переносе хоть какой из этих букв нарушится условие Фано; к примеру, при переносе буквы Б в голубий узел она оказывается на пути от корня до В, и т.д.; это означает, что предлагаемые варианты не дозволяют выполнить прямое условие Фано

5) Охото уже избрать вариант 2 (это невероятно), но у нас есть еще оборотное условие Фано, для которого тоже можно выстроить аналогичное дерево, в котором движение от корня к буковке дает её код с конца (красным цветом выделен код буквы В 011, записанный с конца):

видно, что оборотное условие Фано также производится, поэтому что на пути от корня к хоть какой буковке нет других букв

6) В данных вариантах ответа предлагается переместить буковку Б, В либо Г в синий узел; понятно, что Б либо В туда перемещать нельзя перемещённая буковка отказывается на пути от корня к букве Г; а вот буковку Г переместить можно, при этом оборотное условие Фано сохранится

Ответ: 4

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт