Калькулятор китайской теоремы об остатках

Решите три одновременных сравнения с попарно взаимно простыми модулями.

Решение системы сравнений
Введите каждый целый остаток рядом с его положительным модулем.

О калькуляторе китайской теоремы об остатках

Китайская теорема об остатках, часто обозначаемая CRT, объединяет несколько модульных условий в одно решение. Сравнение x ≡ 2 по модулю 3 означает, что при делении x на 3 получается остаток 2. Калькулятор принимает три таких уравнения и находит наименьшее неотрицательное целое число, одновременно удовлетворяющее им всем. Классическая теорема применяется к попарно взаимно простым модулям: наибольший общий делитель каждой пары равен единице. При этом существует ровно одно решение по модулю произведения всех модулей. Для модулей 3, 5 и 7 произведение равно 105. Если наименьшее решение равно 23, то 23, 128, 233 и все числа, полученные прибавлением или вычитанием 105, удовлетворяют той же системе. Конструктивный алгоритм сначала перемножает все модули и получает M. Затем для каждого уравнения делит M на его модуль, получая частичное произведение. Поскольку модули попарно взаимно просты, у частичного произведения есть мультипликативный обратный элемент по исключённому модулю. Произведение остатка, частичного произведения и обратного элемента образует слагаемое, удовлетворяющее одному сравнению и дающее ноль в остальных. Сумма этих слагаемых, приведённая по модулю M, даёт ответ. CRT применяется далеко за пределами учебной теории чисел. Она обеспечивает эффективную арифметику больших целых чисел и используется в криптографии, теории кодирования, календарных циклах, сменных расписаниях, компьютерной алгебре и восстановлении значений по остаткам. Особенно полезна, когда сложный расчёт можно разделить на небольшие независимые вычисления по нескольким модулям, а затем объединить результаты. Введите целые остатки и модули больше единицы. Остаток может быть отрицательным или превышать модуль: приведение по модулю автоматически его нормализует. Эта версия намеренно требует попарно взаимно простых модулей, следуя стандартной теореме и гарантируя единственный класс вычетов. Системы с невзаимно простыми модулями иногда разрешимы, но требуют дополнительной проверки совместности и не входят в возможности калькулятора. Всегда проверяйте результат делением на каждый модуль и сравнением остатков.

Примеры китайской теоремы об остатках

Каждая строка объединяет три сравнения в один класс вычетов.

СравненияРешениеПояснение
2 mod 3; 3 mod 5; 2 mod 723 mod 105Двадцать три даёт все три требуемых остатка.
1 mod 4; 2 mod 5; 3 mod 717 mod 140Произведение попарно взаимно простых модулей равно 140.
0 mod 2; 1 mod 3; 4 mod 54 mod 30Четыре — наименьшее неотрицательное решение всей системы.

Как решить систему сравнений

  1. Введите целый остаток и модуль первого сравнения.
  2. Введите вторую и третью пары остатка и модуля.
  3. Убедитесь, что наибольший общий делитель каждой пары модулей равен единице.
  4. Нажмите «Решить сравнения», чтобы найти единственный класс вычетов.
  5. Проверьте ответ, приводя его по каждому введённому модулю.

Вопросы о китайской теореме об остатках

Что значит «попарно взаимно простые»?

У каждой пары различных модулей наибольший общий делитель должен быть равен единице. Сами модули не обязаны быть простыми числами.

Почему решений бесконечно много?

Теорема определяет один класс вычетов по модулю произведения всех модулей. Прибавление любого кратного этого произведения сохраняет все остатки.

Может ли остаток быть больше модуля?

Да, он будет приведён к эквивалентному стандартному остатку. Например, остаток восемь по модулю пять эквивалентен остатку три.

Можно ли использовать отрицательные остатки?

Да, они задают допустимые классы вычетов и могут быть нормализованы. В ответе выводится наименьший неотрицательный представитель.

Что происходит, если модули не взаимно простые?

Решение может существовать только при совместности перекрывающихся сравнений. Калькулятор следует классической теореме для попарно взаимно простых модулей и сообщает, что такие системы не поддерживаются.

Как проверить решение CRT?

Разделите показанное решение на каждый модуль и проверьте остаток. Он должен совпадать с соответствующим введённым значением после приведения по модулю.