引入
通常情况下,模运算有加法、乘法,减法的分配率,即:
(a+b)%m=(a%m+b%m)%m
(
a
+
b
)
%
m
=
(
a
%
m
+
b
%
m
)
%
m
(a−b)%m=(a%m−b%m)%m
(
a
−
b
)
%
m
=
(
a
%
m
−
b
%
m
)
%
m
(a×b)%m=(a%m×b%m)%m
(
a
×
b
)
%
m
=
(
a
%
m
×
b
%
m
)
%
m
(模运算为最高级运算,负数不考虑= =)
但是有除法怎么办?显然
ab%m≠a%mb%m
a
b
%
m
≠
a
%
m
b
%
m
,需要用逆元将其变为乘法,然后使用分配率。
逆元
概念
若
ab≡1 (mod m)
a
b
≡
1
(
m
o
d
m
)
,则称
a
a
与在模
m
m
的情况下互为逆元。
记,所以
b
b
又叫的数论倒数。
求逆元
需要用到费马小定理:若 p p 为质数(显然与 p p 互质),则,所以 ap−2 a p − 2 就是 a a 在模的情况下的一个逆元,由模乘法的分配率得 ap−2%m a p − 2 % m 也是 a a 的一个逆元,用快速幂求得即可(一般题目中的模数都是质数)。
用法
设,则 bc%m=1 b c % m = 1 ( m m 不可能为),所以有:
求出 b b 的逆元就能处理模运算中的除法了。