Условие задачи:
Каждой букве русского алфавита (кроме букв «ё» и «ъ») и знаку «пробел» поставлено в соответствие число от 0 до 31:
а – 0 и – 8 р – 16 ш – 24 б – 1 й – 9 с – 17 щ – 25 в – 2
к – 10 т – 18 ы – 26 г – 3 л – 11 у – 19 ь – 27 д – 4 м – 12
ф – 20 э – 28 е – 5 н – 13 х – 21 ю – 29 ж – 6 о – 14 ц – 22
я – 30 з – 7 п – 15 ч – 23
пробел – 31
Пусть
T1 и
T2 — две русские осмысленные фразы длиной 76 каждая
Дана их поэлементная сумма: T1 ⊕ T2 = [18, 0, 12, 8, 3, 12, 27, 26, 29, 12, 0, 31, 5, 19, 26, 11, 0, 2, 18, 1, 6, 5, 28, 26, 9, 27, 11, 3, 25, 2, 23, 16, 15, 30, 4, 2, 23, 13, 23, 8, 16, 19, 4, 27, 1, 0, 14, 20, 0, 29, 8, 14, 14, 1, 6, 28, 4, 30, 21, 9, 6, 19, 9, 20, 13, 17, 15, 15, 1, 6, 14, 8, 5, 16, 7, 2]
Поэлементная сумма производится с помощью операции поразрядного сложения по
mod 2.
Задание:
Найти фразы T1 и T2.
ПРАВИЛО XOR (⊕):
A ⊕ B = 0 ⟺ A = B
Другими словами:
XOR равен 0 ТОЛЬКО когда оба числа одинаковые
XOR не равен 0 когда числа разные
Применительно к задаче:
В позициях 1, 10, 16, 45, 48 результат XOR = 0
Значит,
T1[1] = T2[1], T1[10] = T2[10], T1[16] = T2[16], T1[45] = T2[45], T1[48] = T2[48]
Это означает, что в этих позициях обе фразы содержат
абсолютно одинаковые символы.
Есть ограничение на одинаковые символы
Ключевое ограничение: В позициях 1, 10, 16, 45, 48 символы в T1 и T2
абсолютно одинаковые.
Структурный анализ:
Код:
Позиция: 0123456789012345678901234567890123456789012345678...
Шаблон: ?X????????X?????X????????????????????????????X??X?
^ ^ ^ ^ ^
1 10 16 45 48
Это значительно
сужает поисковое пространство - не любые две фразы подойдут!
Предположить, что одинаковые позиции содержат частые символы (пробел, 'а', 'е', 'и', 'о')
Если позиции 1, 10, 16 = пробелы, то структура: X пробел XXXXXXXX пробел XXXXX пробел...
Это дает слова длиной: 1, 8, 5 букв в начале
нужен анализ источника задачи если других подсказок нет
Откуда взята задача? (учебник, олимпиада, курс?)
Какой уровень сложности?
Какая тематика курса?