|
||||||||||||||||||||
Код ХаффманаКод Хаффмана Идея, положенная в основу кодирования Хаффмана, основана на частоте появления символа в последовательности. Символ, который встречается в последовательности чаще всего, получает новый очень маленький код, а символ, который встречается реже всего, получает, наоборот, очень длинный код. Это нужно, так как мы хотим, чтобы, когда мы обработали весь ввод, самые частотные символы заняли меньше всего места (и меньше, чем они занимали в оригинале), а самые редкие — побольше (но так как они редкие, это не имеет значения). № 1. Для кодирования букв О, В, Д, П, А решили использовать двоичное представление чисел 0, 1, 2, 3 и 4 соответственно (с сохранением одного незначащего нуля в случае одноразрядного представления). Если закодировать последовательность букв ВОДОПАД таким способом и результат записать восьмеричным кодом, то получится 1) 22162 2) 1020342 3) 2131453 4) 34017 № 2. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г, используется посимвольное кодирование: А-00, Б-11, В-010, Г-011. Через канал связи передаётся сообщение: ВБГАГВ. Закодируйте сообщение данным кодом. Полученное двоичное число переведите в шестнадцатеричный вид. 1) CBDADC 2) 511110 3) 5В1А 4) А1В5 № 3. Для кодирования сообщения, состоящего только из букв А, Б, В и Г, используется неравномерный по длине двоичный код:
Если таким способом закодировать последовательность символов ВГАГБВ и записать резуль получится: 1) CDADBC 2) A7C4 3) 412710 4) 4С7А № 4. Черно-белое растровое изображение кодируется построчно, начиная с левого верхнего угла и заканчивая в правом нижнем углу. При кодировании 1 обозначает черный цвет, а 0 – белый. Для компактности результат записали в восьмеричной системе счисления. Выберите правильную запись кода. 1) 57414 2) 53414 3) 53412 4) 53012 № 5. Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв - из двух бит, для некоторых - из трех). Эти коды представлены в таблице:
Определите, какой набор букв закодирован двоичной строкой 1100000100110 1) baade 2) badde 3) bacde 4) bacdb № 6. Для передачи чисел по каналу с помехами используется код проверки четности. Каждая его цифра записывается в двоичном представлении, с добавлением ведущих нулей до длины 4, и к получившейся последовательности дописывается сумма её элементов по модулю 2 (например, если передаём 23, то получим последовательность 0010100110). Определите, какое число передавалось по каналу в виде 01100010100100100110? 1) 6543 2) 62926 3) 62612 4) 3456 № 7. По каналу связи передаются сообщения, содержащие только 4 буквы — П, О, Р, Т. Для кодирования букв используются 5-битовые кодовые слова: П — 11111, О — 11000, Р — 00100, Т — 00011. Для этого набора кодовых слов выполнено такое свойство: любые два слова из набора отличаются не менее чем в трёх позициях. Это свойство важно для расшифровки сообщений при наличии помех (в предположении, что передаваемые биты могут искажаться, но не пропадают). Закодированное сообщение считается принятым корректно, если его длина кратна 5 и каждая пятёрка отличается от некоторого кодового слова не более чем в одной позиции; при этом считается, что пятёрка кодирует соответствующую букву. Например, если принята пятерка 00000, то считается, что передавалась буква Р. Среди приведённых ниже сообщений найдите то, которое принято корректно, и укажите его расшифровку (пробелы несущественны). 11011 11100 00011 11000 01110 00111 11100 11110 11000 00000 1) ПОТОП 2) РОТОР 3) ТОПОР 4) ни одно из сообщений не принято корректно № 8. Для передачи данных по каналу связи используется 5-битовый код. Сообщение содержит только буквы А, Б и В, которые кодируются следующими кодовыми словами: А — 10010, Б — 11111, В — 00101. При передаче возможны помехи. Однако некоторые ошибки можно попытаться исправить. Любые два из этих трёх кодовых слов отличаются друг от друга не менее чем в трёх позициях. Поэтому если при передаче слова произошла ошибка не более чем в одной позиции, то можно сделать обоснованное предположение о том, какая буква передавалась. (Говорят, что «код исправляет одну ошибку».) Например, если получено кодовое слово 00100, считается, что передавалась буква В. (Отличие от кодового слова для Б только в одной позиции, для остальных кодовых слов отличий больше.) Если принятое кодовое слово отличается от кодовых слов для букв А, Б, В более чем в одной позиции, то считается, что произошла ошибка (она обозначается 'х'). Получено сообщение 10000 10101 11001 10111. Декодируйте это сообщение — выберите правильный вариант. 1) АВББ 2) хххх 3) АВхБ 4) АххБ № 9. Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, решили использовать неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность, появляющуюся на приёмной стороне канала связи. Для букв А, Б, В и Г использовали такие кодовые слова: А — 111, Б — 110, В — 101, Г — 100. Укажите, каким кодовым словом из перечисленных ниже может быть закодирована буква Д. Код должен удовлетворять свойству однозначного декодирования. Если можно использовать более одного кодового слова, укажите кратчайшее из них. 1) 1 2) 0 3) 01 4) 10 № 10. По каналу связи передаются сообщения, содержащие только 4 буквы: Е, Н, О, Т. В любом сообщении больше всего букв О, следующая по частоте буква − Е, затем − Н. Буква Т встречается реже, чем любая другая. Для передачи сообщений нужно использовать неравномерный двоичный код, допускающий однозначное декодирование; при этом сообщения должны быть как можно короче. Шифровальщик может использовать один из перечисленных ниже кодов. Какой код ему следует выбрать? 1) Е−0, Н−1, O−00, Т−11 2) O−1, Н−0, Е−01,Т−10 3) Е−1, Н−01, O−001, Т−000 4) О−0, Н−11, Е−101, Т−100 № 11. Для кодирования некоторой последовательности, состоящей из букв К, Л, М, Н, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для буквы Н использовали кодовое слово 0, для буквы К — кодовое слово 110. Какова наименьшая возможная суммарная длина всех четырёх кодовых слов? 1) 7 2) 8 3) 9 4) 10 Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений. №12. По каналу связи передаются сообщения, каждое из которых содержит 16 букв А, 8 букв Б, 4 буквы В и 4 буквы Г (других букв в сообщениях нет). Каждую букву кодируют двоичной последовательностью. При выборе кода учитывались два требования: а) ни одно кодовое слово не является началом другого (это нужно, чтобы код допускал однозначное декодирование); б) общая длина закодированного сообщения должна быть как можно меньше. Какой код из приведённых ниже следует выбрать для кодирования букв А, Б, В и Г? 1) А:0, Б:10, В:110, Г:111 2) А:0, Б:10, В:01, Г:11 3) А:1, Б:01, В:011, Г:001 4) А:00, Б:01, В:10, Г:11
|
||||||||||||||||||||
|