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