В кольце целых чисел по модулю C
эти уравнения эквивалентны:
A / B (mod C)
A * (1/B) (mod C)
A * B
-1 (mod C)
.
Таким образом, вам нужно найти B
-1 , мультипликативную инверсию B
по модулю C
. Вы можете найти его, например, с помощью расширенный алгоритм Евклида.
Обратите внимание, что не каждое число имеет мультипликативный обратный для данного модуля.
В частности, B
-1 существует тогда и только тогда, когда gcd(B, C) = 1
(т.е. B
и C
взаимно просты).
Смотри также
Модульное мультипликативное обратное: пример
Предположим, мы хотим найти мультипликативную инверсию 3 по модулю 11.
То есть мы хотим найти
x = 3
-1 (mod 11)
x = 1/3 (mod 11)
3x = 1 (mod 11)
Используя расширенный алгоритм Евклида, вы обнаружите, что:
x = 4 (mod 11)
Таким образом, модульное мультипликативное обратное 3 по модулю 11 равно 4. Другими словами:
A / 3 == A * 4 (mod 11)
Наивный алгоритм: поиск методом перебора
Один из способов решить эту проблему:
3x = 1 (mod 11)
Нужно просто попробовать x
для всех значений 0..11
и посмотреть, верно ли уравнение. Для небольшого модуля этот алгоритм может быть приемлемым, но расширенный алгоритм Евклида намного лучше асимптотически.