Для расшифровки нам понадобится полная кодовая таблица. Предполагая, что таблица полная, и пользуясь фрагментом, можно предположить, что:
Теперь расшифруем строку !!??!???.
Давайте предположим, что в таблице есть следующие соответствия (исходя из наиболее вероятных комбинаций):
Исходное предложение: «Репа, тыква, огурец, артишок, патиссон, картофель — овощи»
Количество символов:
Всего символов в исходном тексте: 6 + 7 + 8 + 10 + 10 + 11 + 6 = 58 символов.
Размер исходного текста: 58 символов * 2 байта/символ = 116 байт.
Размер нового текста: 116 байт - 22 байта = 94 байта.
Количество символов в новом тексте: 94 байта / 2 байта/символ = 47 символов.
Удалено символов: 58 - 47 = 11 символов.
Это означает, что вычеркнуто слово из 11 символов, и удалена одна запятая и один пробел.
Теперь посмотрим на слова:
Единственное слово, которое может привести к удалению 11 символов (само слово + запятая + пробел), это «Картофель».
К = 2 байта (16 бит)
И = 0.25 байта (2 бита)
С = 0.25 байта (2 бита)
Л = 0.375 байта (3 бита)
О = 0.25 байта (2 бита)
Сообщение: !!??!???.
Разберем по кодам:
Если предположить, что ?? это тоже 'И', то получится: ИИ (неизвестный код) ЛО.
Однако, если предположить, что ?? это 'К', то получится: ИК (неизвестный код) ЛО.
Рассмотрим другой вариант:
!!??!???.
!! — И
?? — если это 2 бита, то это И. Если это 16 бит, то это К.
!?? — если предположить, что это 3 бита, то это Л.
??? — если это 3 бита, то это Л.
?! — О
Если И, К, Л, Л, О: ИКЛЛО
Если И, И, Л, Л, О: ИИЛЛО
Давайте пересмотрим таблицу:
| Буква | Код | Байты |
| К | !!? | 2.25 |
| И | !! | 2 |
| С | !? | 2.25 |
| Л | ??? | 3 |
| О | ?! | 2.25 |
Сообщение: !!??!???.
!! — И
?? — это не полный код. Предположим, что это К (!!?)
!?? — это не полный код. Предположим, что это С (!?)
??? — Л
?! — О
И К С Л О
Если сообщение ИКЛЛО
Если предположить, что ?? это И, то:
!! = И
?? = И
!? = С
?? = И
?! = О
ИИ C И О
Попробуем разобраться с 22 байтами.
Слово «Картофель» состоит из 9 букв.
Если удалить «Картофель», запятую и пробел, то удаляется 9 + 1 + 1 = 11 символов.
11 символов * 2 байта/символ = 22 байта.
Следовательно, вычеркнуто слово «Картофель».
Теперь вернемся к шифру:
!!??!???.
Исходя из таблицы, где:
Расшифруем:
Давайте предположим, что в строке !!??!???. два знака ?? и !?? являются неполными кодами.
Если рассматривать как последовательность кодов:
!! — И
?? — неизвестно, но если это 2 символа, то это может быть И (2 байта).
!?? — неизвестно.
??? — Л (3 байта)
?! — О (2.25 байта)
Если предположить, что ?? и !?? - это одна буква, то:
!! = И
??!???.
Если предположить, что ?? - это К (!!?) и !?? - это С (!?), то:
!! - И
?? - ? (не хватает одного символа для К)
!?? - ? (не хватает одного символа для С)
??? - Л
?! - О
Рассмотрим строку: !!??!???.
!! - И
?? - Если это 2 бита, то это И.
!?? - Если это 3 бита, то это Л.
??? - Л
?! - О
Получается: ИИЛЛО
Теперь предположим, что ?? = К (16 бит), а !?? = С (16 бит)
!! - И
?? - К
!?? - С
??? - Л
?! - О
ИКСЛО
Давайте проверим, какая последовательность образует осмысленное слово.
ИИЛЛО - не является осмысленным словом.
ИКСЛО - тоже не является осмысленным словом.
Возможно, в приведенном фрагменте таблицы не все коды.
Если предположить, что ?? это 2 бита, то это И.
!! = И
?? = И
!?? = ?
??? = Л
?! = О
ИИ ? Л О
Если предположить, что !?? = К (16 бит = 2 байта), то:
!!??!???.
!! -> И
?? -> ? (не хватает 16 бит)
!?? -> ? (не хватает 16 бит)
??? -> Л
?! -> О
Слово: И?? ? Л О
Вернемся к условию: «В нем присутствуют только буквы из приведенного фрагмента кодовой таблицы».
!!??!???.
!! — И
?? — предположим, что это К (!!?) — не хватает одного символа.
!?? — предположим, что это С (!?) — не хватает одного символа.
??? — Л
?! — О
Рассмотрим букву «С», код «!?» (2 байта).
Рассмотрим букву «К», код «!!?» (2.25 байта).
Если ?? это 2 бита, то это И.
!! = И
?? = И
!?? = ?
??? = Л
?! = О
ИИ ? Л О
Если предположить, что !?? это