@Deathgar

Даны 2 неизвестных числа, их сумма по модулю 33, а так же их разность по модулю 33, как найти эти числа?

Дословное задание:

Для зашифрования сообщения используется неизвестная последовательность целых чисел.
Каждую букву сообщения предварительно заменили ее порядковым номером в алфавите (А на 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
Найдите исходное сообщение.

На сколько понял, у нас есть два уравнения по первым числам:
x + y = 30 (mod 33)
x - y = 6 (mod 33)

Как найти x и y?
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@Deathgar Автор вопроса
На основе ниже написанного сделал на C#. Если кому нужно будет.
Нижний ответ так же правильный, но нужно сместить индексы в итоге.
static string Posl(int[] a, int[] b)
        {
            string rez = "";
            int[] c = new int[a.Length];
            for (int i = 0; i < a.Length; i++)
            {
                c[i] = a[i] + b[i];

                if ((c[i] & 1) == 1)
                {
                    c[i] += 33;
                    c[i] /= 2;
                    c[i] %= 33;
                }
                else
                {
                    c[i] /= 2;
                    c[i] %= 33;
                }
                Console.WriteLine(c[i]);
                rez += alf[c[i] - 1];

            }
            return rez;
        }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
for a, b in zip([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]):
    c = a + b
    if c & 1:
        c -= 33
    print('АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'[c // 2], end='')

Чушь какая-то:
'СБТРЙТБОЙЁЛМЯШЁК'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы