Задача 2
Дана таблица кодировки символов:
| М | О | В | Р | Е |
| 000 | 11 | 01 | 001 | 10 |
Нужно определить, какое из приведённых ниже сообщений, записанных в данной кодировке, может быть корректно декодировано (то есть не содержит ошибок).
Предложенные сообщения:
- 11010001001001110
- 110000000011011110
- 1100000100111010
- 1100000010111010
Решение:
Для того чтобы сообщение можно было корректно декодировать, оно должно состоять из последовательности кодов, представленных в таблице. Мы будем пытаться декодировать каждое сообщение, начиная с начала, и проверять, можно ли его разбить на известные коды.
Коды символов:
- М: 000
- О: 11
- В: 01
- Р: 001
- Е: 10
Попробуем декодировать каждое сообщение:
1) Сообщение: 11010001001001110
- Начинаем с 11. Это код для О. Осталось: 010001001001110
- Далее 01. Это код для В. Осталось: 0001001001110
- Далее 000. Это код для М. Осталось: 1001001110
- Далее 10. Это код для Е. Осталось: 01001110
- Далее 01. Это код для В. Осталось: 001110
- Далее 001. Это код для Р. Осталось: 110
- Далее 11. Это код для О. Осталось: 0
В конце остался один символ '0', который не является кодом ни для одного символа. Значит, это сообщение содержит ошибку или не может быть корректно декодировано.
2) Сообщение: 110000000011011110
- Начинаем с 11. Это код для О. Осталось: 0000000011011110
- Далее 000. Это код для М. Осталось: 0000011011110
- Далее 000. Это код для М. Осталось: 0011011110
- Далее 001. Это код для Р. Осталось: 1011110
- Далее 10. Это код для Е. Осталось: 11110
- Далее 11. Это код для О. Осталось: 110
- Далее 11. Это код для О. Осталось: 0
В конце остался один символ '0', который не является кодом ни для одного символа. Значит, это сообщение содержит ошибку или не может быть корректно декодировано.
3) Сообщение: 1100000100111010
- Начинаем с 11. Это код для О. Осталось: 00000100111010
- Далее 000. Это код для М. Осталось: 00100111010
- Далее 001. Это код для Р. Осталось: 00111010
- Далее 001. Это код для Р. Осталось: 11010
- Далее 11. Это код для О. Осталось: 010
- Далее 01. Это код для В. Осталось: 0
В конце остался один символ '0', который не является кодом ни для одного символа. Значит, это сообщение содержит ошибку или не может быть корректно декодировано.
4) Сообщение: 1100000010111010
- Начинаем с 11. Это код для О. Осталось: 00000010111010
- Далее 000. Это код для М. Осталось: 00010111010
- Далее 000. Это код для М. Осталось: 10111010
- Далее 10. Это код для Е. Осталось: 111010
- Далее 11. Это код для О. Осталось: 1010
- Далее 10. Это код для Е. Осталось: 10
- Далее 10. Это код для Е. Осталось: (пусто)
Это сообщение полностью декодировано без остатка. Оно соответствует последовательности символов: ОММЕОЕЕ.
Вывод:
Сообщение под номером 4 может быть корректно декодировано.
Ответ:
4) 1100000010111010
