Сверь числа и знаки с фото.
Слово АРКА закодировано числовой последовательностью 0100100010, причём коды согласных и гласных букв имеют различную длину. Какое слово по этому коду соответствует последовательности 0001001?
- КАРА 2) РАК 3) АКР 4) КАР
Подсказка! Сначала заполните таблицу: А | Р | К ___ | ___ | ___
Ответ: ______
Для пяти букв английского алфавита заданы их двоичные коды (для некоторых букв — из двух символов, для некоторых — из трёх). Эти коды представлены в таблице: A | E | M | N | O 000 | 001 | 11 | 01 | 10
Из четырёх полученных сообщений только одно прошло без ошибки и может быть корректно декодировано. Найдите его.
- 01100010001100
- 01100100011001
- 01100100011101
- 01100100011100
На фото два задания — решаю оба.
Краткий ответ
- Левое задание: 4) КАР; коды букв: А — 010, Р — 01, К — 00.
- Правое задание: 2) 01100100011001.
Левое задание
В слове АРКА две гласные и два согласных. Пусть код гласной имеет длину \(a\), код согласной — \(b\). Тогда \[ 2a+2b=10 \quad\Rightarrow\quad a+b=5. \]
В последовательности 0001001 семь бит. Вариант КАРА состоит из четырёх букв, его код имел бы длину 10, значит, он не подходит. Остальные варианты трёхбуквенные: одна гласная и две согласные, поэтому \[ a+2b=7. \] Вычитая \(a+b=5\), получаем \(b=2\), \(a=3\). То есть гласная кодируется тремя битами, согласные — двумя.
В коде слова АРКА первая и последняя буквы — А, поэтому код А должен совпадать в начале и в конце: \[ 0100100010=010\,|\,01\,|\,00\,|\,010. \] Отсюда А = 010, Р = 01, К = 00.
Декодируем нужную последовательность: \[ 0001001=00\,|\,010\,|\,01, \] то есть К А Р.
Ответ: 4) КАР.
Правое задание
Коды \(000, 001, 01, 10, 11\) образуют префиксный код: ни один код не является началом другого, поэтому сообщение читается слева направо однозначно.
Проверяем вариант 2: \[ 01100100011001=01\,|\,10\,|\,01\,|\,000\,|\,11\,|\,001. \] Это соответствует \(N\,O\,N\,A\,M\,E\), то есть NONAME. Вся цепочка разобрана на кодовые слова, остатка нет.
В остальных вариантах остаётся лишний фрагмент:
- \(01|10|001|000|11|00\) — остаток \(00\);
- \(01|10|01|000|11|10|1\) — остаток \(1\);
- \(01|10|01|000|11|10|0\) — остаток \(0\).
Поэтому корректно декодируется только вариант 2) 01100100011001.