# Китайская теорема об остатках (система сравнений)

Решает систему сравнений x ≡ rᵢ (mod mᵢ) (2–20 уравнений) обобщённой китайской теоремой об остатках с попарным слиянием: для попарно взаимно простых модулей объединённый модуль равен произведению, для не взаимно простых, но совместимой системы — НОК, а для несовместимой системы явно сообщается об отсутствии решений. Каждое сравнение проверяется подстановкой в итоговое решение. Классика: x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7) → x = 23 (mod 105).

> Каноническая страница: https://elysiatools.com/ru/tools/chinese-remainder-theorem

- **Категория:** Math & Numbers

- **Ключевые слова:** китайская теорема об остатках, система сравнений, сравнения по модулю, нок, теория чисел

## Обзор

Инструмент решает системы линейных сравнений x ≡ rᵢ (mod mᵢ) от 2 до 20 уравнений с помощью китайской теоремы об остатках. Алгоритм выполняет попарное слияние, находя точное решение для взаимно простых модулей, применяя обобщённую теорему через НОК для совместимых не взаимно простых модулей или сообщая о несовместности системы, а также проверяет результат подстановкой.

## Входные данные

- **Остатки r (по одному на уравнение)** (text): Comma- or space-separated remainders, one per congruence; negative values are reduced mod m.
- **Модули m (по одному на уравнение)** (text): Comma- or space-separated moduli (each m ≥ 2), matching the remainders count.

## Когда использовать

- Решение систем модульных сравнений в учебных и олимпиадных задачах по теории чисел и дискретной математике.
- Проверка криптографических вычислений и алгоритмов с модульной арифметикой (например, ускорение RSA через КТО).
- Поиск общих периодов или фаз повторяющихся циклов с различными интервалами в программировании и логистике.

## Как это работает

- Введите значения остатков r и соответствующих им модулей m (каждый m ≥ 2) через запятую или пробел.
- Инструмент нормализует отрицательные остатки и последовательно объединяет пары сравнений с помощью расширенного алгоритма Евклида.
- Вычисляется объединённый модуль (произведение для взаимно простых чисел или НОК для чисел с общими делителями) и выводится наименьшее неотрицательное решение x.
- Каждое исходное сравнение автоматически проверяется подстановкой найденного x, либо выводится сообщение об отсутствии решений при несовместимости.

## Сценарии использования

- Нахождение наименьшего натурального числа по заданным наборам остатков от деления на разные делители.
- Оптимизация и разбор шагов китайской теоремы об остатках при изучении алгоритмов асимметричной криптографии.
- Определение момента одновременного совпадения событий с несинхронными периодическими интервалами.

## Частые вопросы

### Что произойдёт, если модули не являются взаимно простыми?

Инструмент использует обобщённую теорему: если разность остатков делится на НОД модулей, система успешно решается по модулю их НОК, иначе выводится сообщение об отсутствии решений.

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

Да, отрицательные остатки автоматически приводятся к каноническому положительному вычету по соответствующему модулю.

### Сколько сравнений можно решить одновременно?

Калькулятор поддерживает решение систем, содержащих от 2 до 20 уравнений.

### Каким должен быть размер каждого модуля?

Каждый модуль m должен быть целым числом, большим или равным 2.

### Что показывает блок проверки в ответе?

Блок проверки показывает подстановку вычисленного x в каждое исходное уравнение вида x mod mᵢ = rᵢ для подтверждения корректности.

## Связанные инструменты

- [Калькулятор функции Кармайкла λ(n)](https://elysiatools.com/ru/tools/carmichael-function): Вычисляет функцию Кармайкла λ(n) — показатель мультипликативной группы (Z/nZ)*, то есть наименьшее k, при котором a^k ≡ 1 (mod n) для всех a, взаимно простых с n. Строится по разложению: λ(2)=1, λ(4)=2, λ(2^k)=2^(k−2) (k ≥ 3), λ(p^k)=φ(p^k) для нечётных простых, затем НОК по компонентам; рядом даются φ(n), наличие первообразного корня и критерий Корсельта для распознавания чисел Кармайкла. Классика: λ(561) = 80 (561 — наименьшее число Кармайкла), а λ(8) = 2 < φ(8) = 4.
- [Генератор перестановок / сочетаний / подмножеств (с повторами)](https://elysiatools.com/ru/tools/combinatorial-generation): Генерирует перестановки, сочетания и подмножества мультимножества с автодедупликацией в лексикографическом порядке: перестановки — методом next_permutation с точным счётом n!/Π(mᵢ!); сочетания — все различные k-подмультимножества, счёт — коэффициент при x^k в Π(1+x+…+x^mᵢ) (C(n,k), если все элементы различны); подмножества — все подмультимножества со счётом Π(mᵢ+1) (2ⁿ, если различны), включая пустое. До 12 элементов, показ ограничен 200 записями, но счёт всегда точен; для сочетаний требуется 1 ≤ k ≤ n. Классика: перестановки \[A, A, B\] → 3!/2! = 3 (AAB, ABA, BAA); подмножества \[A, A, B\] → (2+1)(1+1) = 6.
- [Калькулятор функции Эйлера φ(n)](https://elysiatools.com/ru/tools/euler-totient-function): Вычисляет функцию Эйлера φ(n) — количество целых чисел в \[1, n\], взаимно простых с n. Раскладывает n на простые множители пробным делением и точно считает φ(n) = n · Π(1 − 1/p) (n ≤ 10¹²); можно вывести первые 60 взаимно простых чисел и напоминание теоремы Эйлера a^φ(n) ≡ 1 (mod n). Классика: φ(36) = 12 (36 = 2² × 3²); для простого n φ(n) = n − 1, например φ(97) = 96.
- [Конвертер Дробей и Десятичных](https://elysiatools.com/ru/tools/fraction-decimal-converter): Преобразование между дробями и десятичными числами с поддержкой смешанных чисел, неправильных дробей и различных десятичных форматов
- [Решатель матричных игр с нулевой суммой (седловая точка / линейное программирование)](https://elysiatools.com/ru/tools/game-theory-zero-sum): Решает матричные игры 2–6 × 2–6 с нулевой суммой (платёжная матрица принадлежит игроку-строке — максимизирующему; игрок-столбец платит): сначала проверка седловой точки (если максимин минимумов строк равен минимаксу максимумов столбцов, существует равновесие в чистых стратегиях и перечисляются все седловые клетки); иначе матрица сдвигается так, чтобы все элементы были ≥ 1, и однофазным симплексом (базис из остаточных переменных, правило Бланда) решается max Σz при Bz ≤ 1: прямой ответ даёт смешанную стратегию q игрока-столбца, а двойственные теневые цены — в точности решение y игрока-строки; значение сдвигается обратно, выводятся x, q, v с численной проверкой гарантий (xᵀA ≥ v, Aq ≤ v) и равенства минимакса. Классика: «орлянка» \[\[1,-1\],\[-1,1\]\] → значение 0, обе стороны смешивают 0.5/0.5.
- [Калькулятор обратного преобразования Лапласа (простые дроби)](https://elysiatools.com/ru/tools/inverse-laplace-calculator): Вычисляет обратное преобразование Лапласа для F(s) = N(s)/D(s) (правильная дробь, степень знаменателя ≤ 6): находит корни знаменателя, группирует их по кратности и сопряжённым парам, решает линейную систему по коэффициентам многочленов для разложения на простые дроби и обращает каждое слагаемое по таблице (A/(s−r)→Ae^(rt), A/(s−r)^j→At^(j−1)e^(rt)/(j−1)!, (Bs+C)/((s−α)²+β²)→e^(αt)\[Bcos(βt)+…sin(βt)\]). Классика: 1/(s²+3s+2) → e^(−t)−e^(−2t); (3s+5)/(s²+4) → 3cos(2t)+2,5sin(2t).
- [Калькулятор преобразования Лапласа (таблица пар)](https://elysiatools.com/ru/tools/laplace-transform-calculator): Табличное преобразование Лапласа F(s) = ∫₀^∞ e^(−st)f(t)dt: 14 стандартных пар (1, t, tⁿ, e^(at), tⁿe^(at), sin/cos(kt) с экспоненциальным сдвигом, sinh/cosh, t·sin/t·cos, δ(t)), с подстановкой параметров, областью сходимости (например s > a), ходом вывода и необязательным численным вычислением в точке s (со проверкой сходимости). Пример: L{e^t} = 1/(s−1), s>1, F(2) = 1.
- [Мультипликативный порядок по модулю n (порядок элемента)](https://elysiatools.com/ru/tools/order-of-element-mod-n): Вычисляет мультипликативный порядок ord\_n(a) — наименьшее k ≥ 1 с a^k ≡ 1 (mod n) (требуется gcd(a, n) = 1). Алгоритм стартует с φ(n) и последовательно отбрасывает простые множители, проверяя a^(ord/p); вывод включает таблицу степеней a, доказательство минимальности (a^(k/p) ≢ 1 для каждого простого p | k), порождённую циклическую подгруппу , а также отметки, является ли a первообразным корнем (ord = φ(n)) или достигает максимального порядка (ord = λ(n)). Классика: ord\_7(3) = 6 = φ(7), 3 — первообразный корень по модулю 7; ord\_15(2) = 4 < φ(15) = 8.

## Примеры

- [Примеры NATS Message System](https://elysiatools.com/ru/samples/nats-samples): Примеры системы обмена сообщениями NATS включая pub/sub, request-reply, группы очередей и JetStream для современных облачных приложений
- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Примеры Текста на Китайско-Английском Языке](https://elysiatools.com/ru/samples/text-chinese-english-mixed-samples): Примеры текстовых файлов со смешанным китайско-английским содержимым для тестирования инструментов автоматического добавления пробелов
- [Текст с Китайскими Образцами](https://elysiatools.com/ru/samples/text-with-chinese-samples): Многоязычный текст, содержащий китайские символы для проверки извлечения китайского
