Как решить сравнение по модулю: 42x = 30 (mod 78)
Дано: сравнение . Найти: все его решения, то есть все классы вычетов по модулю 78, при которых сравнение обращается в верное.
Линейное сравнение решается по жёсткой схеме из четырёх ходов: считаем , проверяем делимость правой части на , сокращаем сравнение вместе с модулем и находим единственный корень по уменьшенному модулю, а затем разворачиваем его обратно в классов по исходному модулю. Здесь , число 30 на 6 делится, значит решения есть, и их ровно шесть: . Калькулятор сверху прогоняет ту же цепочку для любых , , и рисует остатки по всем вычетам, ниже разбор по шагам.
Решение по шагам
Дано. , , .
Найти. Все целые , для которых .
Шаг 1. Считаем НОД коэффициента и модуля. Лестница Евклида занимает три деления:
Последний ненулевой остаток равен 6, поэтому . Если лестница вызывает вопросы, она подробно разобрана в задаче как найти НОД двух чисел.
Шаг 2. Проверяем разрешимость. Сравнение имеет решения тогда и только тогда, когда правая часть делится на . Проверяем: , остатка нет. Критерий выполнен, решения существуют, и их будет ровно штук.
Шаг 3. Сокращаем сравнение на . Делим на шестёрку всё сразу: обе части и модуль. Модуль тоже делится, и это главное отличие сравнения от обычного уравнения.
Теперь , поэтому у сокращённого сравнения корень по модулю 13 ровно один.
Шаг 4. Находим обратный элемент к 7 по модулю 13. Расширенный алгоритм Евклида даёт разложение единицы через 7 и 13:
Отсюда , то есть двойка и есть обратный к семёрке по модулю 13.
Шаг 5. Умножаем обе части на обратный элемент.
Шаг 6. Разворачиваем ответ к исходному модулю. Один класс по модулю 13 распадается на шесть классов по модулю 78: к найденному корню последовательно прибавляем шаг , пока не выйдем за модуль.
Шаг 7. Проверяем подстановкой. Каждый корень обязан давать остаток 30 при делении на 78.
| Деление на 78 | Остаток | ||
|---|---|---|---|
| 10 | 420 | 30 | |
| 23 | 966 | 30 | |
| 36 | 1512 | 30 | |
| 49 | 2058 | 30 | |
| 62 | 2604 | 30 | |
| 75 | 3150 | 30 |
Ответ. , то есть шесть классов вычетов с шагом 13.
Формула и откуда она берётся
Запись по определению означает, что разность делится на . Значит найдётся такое целое , что , а это обычное линейное уравнение в целых числах:
Диофантово уравнение с двумя неизвестными разрешимо ровно тогда, когда его правая часть кратна НОД коэффициентов, и решение уравнения в целых числах устроено по тому же критерию. В одну сторону он очевиден: и , и делятся на , поэтому вся левая часть кратна , и никакое , не кратное , получиться не может. В другую сторону работает соотношение Безу: найдутся целые и с , и если , то умножение этого равенства на даёт готовое решение.
Число решений тоже выводится, а не запоминается. После сокращения на получается сравнение , где , , и . Взаимная простота гарантирует существование обратного элемента, поэтому корень по модулю единственный. Остаётся понять, во что он превращается по модулю : один класс вычетов по меньшему модулю содержит ровно классов по большему модулю . Отсюда и ответ: решений либо нет вовсе, либо ровно штук.
Заодно видно, зачем при сокращении делить и модуль. Сравнение и сравнение неравносильны: у второго , значит корень был бы один, а у исходного их шесть. Делить обе части, оставив модуль нетронутым, можно только на число, взаимно простое с модулем.
Когда решений нет: посмотрите на второй график
Возьмём сравнение . Здесь , а правая часть 4 на 3 не делится, поэтому решений нет ни одного. Перебирать девять вычетов не нужно, но полезно один раз посмотреть, почему перебор ничего не даст: произведение по модулю 9 пробегает только значения 0, 6, 3, и все они кратны тройке.
Именно это показывает второй режим калькулятора сверху. Столбики стоят не над всеми правыми частями, а только над кратными , и высота у каждого одинаковая и равна . Для нашей основной задачи с модулем 78 столбики стоят над числами 0, 6, 12, 18 и так далее с шагом 6, каждый высотой 6, а число 30 в эту решётку попадает, потому и решений шесть. Если сдвинуть ползунок правой части на 31, столбик исчезнет, и калькулятор честно сообщит, что корней нет.
Отсюда практический вывод для контрольной: проверка критерия занимает одну строку и экономит всё остальное время. Сначала НОД, потом делимость, и только затем сокращение с поиском обратного.
Система сравнений и китайская теорема об остатках
Когда неизвестное связано сразу несколькими условиями, работает та же техника, только применённая последовательно. Классическая постановка выглядит так: найти , дающее остаток 2 при делении на 5 и остаток 3 при делении на 7.
Из первого сравнения выражаем и подставляем во второе: , откуда . Это уже знакомое линейное сравнение, его корень , потому что . Подставляем обратно: , а общий ответ .
Китайская теорема об остатках утверждает, что так будет всегда, если модули попарно взаимно просты: решение существует, единственно по модулю произведения модулей и находится именно такой последовательной подстановкой. Для нашего примера произведение равно , и 17 действительно единственный подходящий вычет среди тридцати пяти. Если же модули имеют общий делитель, система разрешима не всегда: остатки должны согласовываться по этому общему делителю.
Частые ошибки
- Сокращают сравнение, не трогая модуль. Переход от к меняет задачу: вместо шести корней остаётся один. Модуль делится на вместе с обеими частями.
- Делят обе части на число, не взаимно простое с модулем. Сокращать на без деления модуля разрешено только при , иначе часть решений теряется.
- Считают, что решение всегда одно. Единственность бывает лишь при . При корней ровно , и ответ из одного числа засчитан не будет.
- Ищут обратный элемент при . Обратного к 42 по модулю 78 не существует вовсе, поэтому сначала сокращение, потом поиск обратного, а не наоборот.
- Пропускают проверку делимости и «решают» неразрешимое сравнение. Если не кратно , любые дальнейшие выкладки дадут число, которое не пройдёт подстановку.
- Выдают за ответ одно число вместо класса вычетов. Решением сравнения является весь класс: не , а , что по модулю 78 разворачивается в шесть вычетов.
FAQ
Чем сравнение отличается от обычного уравнения? Неизвестное в сравнении ищется не среди всех чисел, а среди классов вычетов, поэтому решений всегда либо ноль, либо конечное число классов, каждый из которых содержит бесконечно много целых чисел. И арифметика другая: делить на произвольное число нельзя, а деление на взаимно простое с модулем заменяется умножением на обратный элемент.
Можно ли просто перебрать все вычеты? Для маленького модуля да: подставить и отобрать подходящие. При это 78 подстановок против четырёх шагов алгоритма, а при модуле в сотни знаков, как в криптографии, перебор невозможен физически. Проверка же найденного ответа подстановкой обязательна в любом случае.
Что делать, если правая часть отрицательна или больше модуля? Заменить её остатком от деления на модуль, ответ от этого не изменится. Сравнение равносильно исходному, потому что ; точно так же заменяется на 30. Приводить к промежутку от 0 до удобно сразу, до всех вычислений.
Как связаны сравнения и остатки от деления? Запись при означает ровно то, что даёт остаток при делении на . Поэтому задачи вида «найти остаток от деления большой степени» сводятся к сравнениям, а считают их быстрым возведением в степень по модулю.
Коротко
- Считаем алгоритмом Евклида: .
- Проверяем критерий разрешимости : число 30 делится на 6, значит решения есть и их ровно 6.
- Сокращаем на обе части и модуль: переходит в .
- Находим обратный к 7 по модулю 13 расширенным алгоритмом Евклида: он равен 2, откуда .
- Разворачиваем корень с шагом и проверяем подстановкой: .
Похожие задачи
Как решить систему сравнений: китайская теорема об остатках
Как решить систему сравнений x = 2 (mod 3), x = 3 (mod 5), x = 2 (mod 7): проверка взаимной простоты модулей, сборка ответа по китайской теореме об остатках и проверка подстановкой.
Теория чисел/криптографияКак найти НОД двух чисел: алгоритм Евклида
Как найти НОД двух чисел алгоритмом Евклида: деления с остатком по шагам на примере 1071 и 462, проверка ответа, НОК через НОД, расширенный алгоритм и коэффициенты Безу.
Теория чисел/криптографияКак решить уравнение в целых числах: 54x + 21y = 906
Как решить уравнение в целых числах на примере 54x + 21y = 906: проверка разрешимости по НОД, частное решение расширенным алгоритмом Евклида, общее решение с параметром и отбор натуральных.
Теория чисел/криптографияКак найти функцию Эйлера: разбор на числе 7560
Как найти функцию Эйлера: разбор числа 7560 по шагам, каноническое разложение, формула через произведение скобок по простым делителям, проверка мультипликативностью и теорема Эйлера.
Теория чисел/криптографияКак найти обратное по модулю: расширенный алгоритм Евклида
Как найти обратное по модулю: разбор на числах 37 и 120, условие существования через НОД, таблица расширенного алгоритма Евклида, приведение коэффициента и проверка остатка.
Теория чисел/криптографияКак найти первообразный корень: критерий и пример
Как найти первообразный корень по модулю: функция Эйлера, критерий через её простые делители, проверка кандидатов 2, 3, 5 и 6 по модулю 41 и таблица индексов.