Алгебра и многочлены на Верченко
Ошибка.
Попробуйте повторить позже
Пусть — двоичный вектор длины 8. Обозначим — циклический сдвиг вектора на позиций вправо. Например, если то При этом считаем, что Под суммой векторов и будем понимать вектор
Здесь — стандартная операция сложения битов: Пусть
Найдите такие, что при любом исходном векторе выполняется равенство
Источники:
Подсказка 1
Пупупу… Какие-то непонятные векторы, с которыми работать не очень понятно как, да и просто непривычно! На что можно заменить любой вектор, чтобы с этим было удобнее работать?
Подсказка 2
Да, можно заменить любой вектор длины a на многочлен, степени одночленов которого — это числа от 0 до a(включительно)! Подумайте, как можно отобразить операцию циклического сдвига на многочлене?
Подсказка 3
Верно, можно просто умножать все его на одночлены на степень, равную величине сдвига и после этого от каждой степени оставлять только остаток по модулю длины вектора! Тогда какому многочлену соответствует вектор x?
Подсказка 4
Да, это многочлен, который состоит из одночленов со степенями 0, 1, 4. А какое условие должно выполняться, чтобы мы нашли многочлен v?
Подсказка 5
Верно, нужно, чтобы произведение многочлена x на многочлен v равнялось единице(учитывая, что можно заменять степени на остаток по модулю введённой степени многочлена)! Осталось найти такой многочлен v, для которого это выполняется!
Заметим, что для любого натурального числа . Вектору взаимно однозначно соответствует многочлен
Тогда циклический сдвиг вектора на позиций вправо равносилен умножению многочлена на и приведению степеней мономов по модулю .
Вектору соответствует многочлен . Таким образом, нахождение таких, что равносильно нахождению многочлена со свойством (с учётом приведения степеней мономов по модулю ). Найти многочлен можно методом неопределённых коэффициентов, но быстрее из следующего алгоритма:
Следовательно,