Для зашифрования сообщения используется неизвестная последовательность целых чисел.
Каждую букву сообщения предварительно заменили ее порядковым номером в алфавите (А на 1, …, Я на 33). Затем прибавляли к нему очередной член последовательности и, наконец, выписывали остаток от деления этой суммы на 33.
Получилось вот что:
30 11 7 24 29 11 15 18 15 32 9 3 10 1 26 24
Если бы при зашифровании того же самого сообщения вместо сложения с членами последовательности производили вычитание, то получилось бы
6 24 31 10 24 27 20 12 5 13 15 23 21 16 19 31
Найдите исходное сообщение.
Ответ вводите прописными буквами
Answers & Comments
Обозначим номер зашифрованной буквы в русском алфавите через n, a очередной член последовательности - через a[k].
Тогда в первом массиве A на соответствующем i-м месте находится элемент A[i] = (n + a[k]) mod 33, а во втором массиве B - на i-м месте находится элемент B[i] = (n - a[k]) mod 33.
Складывая почленно оба массива и учитывая, что x mod m + y mod m = (x + y) mod m, получим на i-m месте нового массива суммы AB: AB[i] = A[i] + B[i] = (n + a[k]) mod 33 + (n - a[k]) mod 33 = ((n + a[k]) + (n - a[k])) mod 33 = 2n mod 33, для всех индексов i в массиве AB. То есть, неизвестные нам члены последовательности a[k] взаимно уничтожаются при формировании массива AB.
Стало быть, AB[i] = 2n mod 33, и нужно найти N[i] для каждого индекса i в массиве AB.
Находим N[i] для каждого индекса i следующим образом:
Если AB[i] - четное, то N[i] = AB[i]/2, в противном случае - N[i] = (AB[i] + 33)/2.
Полученное таким образом число N[i] будет меньше, чем 33.
Т.е. для нахождения исходного сообщения M нужно для каждого порядкового номера N[i] найти соответствующую ему букву S[N[i]] в русском алфавите, т.е. M[i] = S[N[i]] для каждого индекса i в массиве.
Окончательно получим для нашего случая:
Исходные массивы:
A = 30 11 7 24 29 11 15 18 15 32 9 3 10 1 26 24
B = 6 24 31 10 24 27 20 12 5 13 15 23 21 16 19 31
Массив A + B:
AB = 36 35 38 34 53 38 35 30 20 45 24 26 31 17 45 55
Массив (A + B) mod 33:
AB mod 33 = 3 2 5 1 20 5 2 30 20 12 24 26 31 17 12 22
Массив N[i]:
N = 18 1 19 17 10 19 1 15 10 6 12 13 32 25 6 11
Русский алфавит S с соответствующей ему нумерацией букв:
А-1, Б-2, В-3, Г-4, Д-5, Е-6, Ё-7, Ж-8, З-9, И-10, Й-11, К-12, Л-13, М-14, Н-15, О-16, П-17, Р-18, С-19, Т-20, У-21, Ф-22, Х-23, Ц-24, Ч-25, Ш-26, Щ-27, Ъ-28, Ы-29, Ь-30, Э-31, Ю-32, Я-33.
Итак, исходное сообщение M таково: РАСПИСАНИЕКЛЮЧЕЙ
Была бы такая возможность, - с удовольствием написал бы это и прописными буквами :-)