Система линейный уравнений по модулю

математика обучение алгоритмы модульная арифметика

Дана система:
x=a1 (mod m1)
...
x=an (mod mn)

Требуется найти x.
Если mi,mj - взаимно простые для любых различных i & j, то решение элементарно и следует из Китайской теоремы об остатках.
Как решать если mi, mj - необязательно взаимнопростые или хотя бы определить факт наличия или отсутствия решения?
Ответы:
Сейчас я опишу чушь, но может это тебе поможет.
Возьмем первые два уравнения
x = m1 * t1 + a1
x = m2 * t2 + a2
и приравняем их. Получим диофантово уравнение:
m1 * t1 + (-m2) * t2 = a2 - a1,
где t1, t2 - неизвестные.
Решаем его и получаем t1 = t1' + m2 * T, где t1' - одно из решений, а T - любое целое. (Если решений нет, то и система не имеет решений.) Подставляем  решение в первое уравнение и получаем
x = m2 * T + a1 + m1 * t1'. Таким образом, из двух уравнений мы получили одно и система уменьшилась на одно уравнение. Дальше снова применяем этот метод, пока не останется одно уравнение, оно, по-видимому, и будет решением.
Но вообще, у меня с теорией чисел плохо, поэтому тому, что я написал, верить необязательно.
То есть, x = m1 * m2 * T + a1 + m1 * t1'
периодом решения будет НОК чисел m1, m2, ... mn, поскольку, если x удовлетворяет системе, то и x+НОК будет ей удовлетворять
Любая такая система сводится к системе с взаимопростыми mi. Для этого, например, можно
1. рассмотреть все простые числа, входящие в разложения mj (все вместе для всех j).
2. Для каждого такого простого числа p
2.1. найти максимальную степень вхождения k.
То есть такую, что есть mi, делящееся на p^k, но на p^(k+1) уже ни одно из mj не делится.
Пусть mi --- одно из делящихся на p^k.
2.2. Найти, какой должен быть остаток от деления x на p^k (обозначим его за a). Это остаток от деления ai (i из пункта 2) на p^k.
2.3. Для всех mj, не являющихся взаимопростыми с p проверить, не противоречит ли сравнение x=aj(mod mj) сравнению x=a(mod p^k). Для этого надо найти степень вхождения p в mj (пусть это kj) и проверить, что aj=a(mod p^kj).
Если это не верно, хотя бы для какого-нибудь p, то решения нет, если верно для всех, то есть.
3. Записать для каждого p, рассмотренного в п.2, уравнения вида p=a(mod p^k). Такие уравнения и будут новой системой. Числа, по модулю которых происходят сравнения, будут взаимопросты по построению.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.