Хелпикс

Главная

Контакты

Случайная статья





Ещё пример задания. Ещё пример задания



Ещё пример задания

Р-09.Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, используется неравномерный двоичный код, позволяющий однозначно декодировать полученную двоичную последовательность. Вот этот код: А – 0; Б – 100; В – 1010; Г – 111; Д – 110. Требуется сократить для одной из букв длину кодового слова так, чтобы код по-прежнему можно было декодировать однозначно. Коды остальных букв меняться не должны.

Каким из указанных способов это можно сделать?

1) для буквы В – 101                2) это невозможно

3) для буквы В – 010            4) для буквы Б – 10

Решение:

1) код однозначно декодируется, если выполняется условие Фано или обратное условие Фано; в данном случае «прямое» условие Фано выполняется: с кода буквы А (0) не начинается ни один другой код, оставшиеся короткие коды (Б, Г и Д) не совпадают с началом длинного кода буквы В; таким образом, при сокращении нужно сохранить выполнение условия Фано

2) вариант 3 не подходит, потому что новый код буквы В начинается с 0 (кода А), поэтому условие Фано нарушено

3) вариант 4 не подходит, потому что код буквы В начинается с 10 (нового кода б), поэтому условие Фано нарушено

4) вариант 1 подходит, условие Фано сохраняется (все трёхбитные коды различны, ни один не начинается с 0)

5) Ответ: 1.

Ещё пример задания

Р-08.По каналу связи передаются сообщения, содержащие только 4 буквы: А, И, С, Т.

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

1) А – 0, И – 1, С – 00, Т – 11                 2) С – 1, И – 0, А – 01, Т – 10

3) А – 1, И – 01, С – 001, Т – 000          4) С – 0, И – 11, А – 101, Т – 100

Решение:

1) сначала выберем коды, допускающие однозначное декодирование: это коды 3 и 4 (для них выполняется условие Фано), коды 1 и 2 не подходят

2) для того, чтобы длина сообщения была как можно короче, должно выполнять правило: «чем чаще встречается буква, тем короче её код»;

3) к сожалению, правило, приведённое выше, не совсем «хорошо» выполняется для кодов 3 и 4: в коде 3 длина кодового слова для буквы С больше, чем длина кодового слова буквы И (а хочется наоборот); для кода 4 длина кодового слова для буквы А – не самая маленькая из всех

4) сравним коды 3 и 4, предполагая, что в сообщении буква А встречается a раз, буква С – b раз, буква И – g раз и буква Т – d раз; причём по условию задачи a > b > g > d

5) при кодировании кодом 3 получаем сообщение длиной

L3  = a + 3b + 2g +3 d

6) при кодировании кодом 4 получаем сообщение длиной

L4  = 3a + b + 2g +3 d

7) находим разность: L4 ­– L3 = (3a + b + 2g +3 d) – (a + 3b + 2g +3 d) = 2a – 2b

8) поскольку a > b, получаем L4 ­– L3 > 0, то есть код 3 более экономичный

9) Ответ: 3.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.