费马小定理求逆元
首先:逆元定义
我们先说明一下什么是逆元
逆元是指,在模
P
P
P的意义下,
a
a
a和
x
x
x的积模
P
P
P后等于1
式子:
a
∗
x
≡
1
a*x≡1
a∗x≡1
(
m
o
d
(mod
(mod
P
)
P)
P)
其次:费马小定理
有了逆元的定义后,我们引入一下费马小定理
何为费马小定理?
如果
p
p
p是一个质数,而整数
a
a
a不是
p
p
p的倍数,则有
a
p
−
1
≡
1
(
m
o
d
p
)
a^{p-1}≡1(mod\ p)
ap−1≡1(mod p)
略证:
两个引理
引理1:
若
a
,
b
,
c
a,b,c
a,b,c为任意3个整数,
m
m
m为正整数,且
(
m
,
c
)
=
1
(m,c)=1
(m,c)=1,则当
a
⋅
c
≡
b
⋅
c
(
m
o
d
m
)
a·c≡b·c(mod\ m)
a⋅c≡b⋅c(mod m)时,有
a
≡
b
(
m
o
d
m
)
a≡b(mod\ m)
a≡b(mod m)。
证明:
a
⋅
c
≡
b
⋅
c
(
m
o
d
m
)
a·c≡b·c(mod\ m)
a⋅c≡b⋅c(mod m)可得
a
c
–
b
c
≡
0
(
m
o
d
m
)
ac–bc≡0(mod\ m)
ac–bc≡0(mod m)可得
(
a
−
b
)
⋅
c
≡
0
(
m
o
d
m
)
(a-b)·c≡0(mod\ m)
(a−b)⋅c≡0(mod m)。因为
(
m
,
c
)
=
1
(m,c)=1
(m,c)=1即
m
,
c
m,c
m,c互质,
c
c
c可以约去,
a
–
b
≡
0
(
m
o
d
m
)
a–b≡0(mod\ m)
a–b≡0(mod m)可得
a
≡
b
(
m
o
d
m
)
a≡b(mod\ m)
a≡b(mod m)。
引理2:
设
m
m
m是一个整数且
m
>
1
m>1
m>1,
b
b
b是一个整数且
(
m
,
b
)
=
1
(m,b)=1
(m,b)=1。如果
a
[
1
]
,
a
[
2
]
,
a
[
3
]
,
a
[
4
]
,
…
a
[
m
]
a[1],a[2],a[3],a[4],…a[m]
a[1],a[2],a[3],a[4],…a[m]是模
m
m
m的一个完全剩余系,则
b
⋅
a
[
1
]
,
b
⋅
a
[
2
]
,
b
⋅
a
[
3
]
,
b
⋅
a
[
4
]
,
…
b
⋅
a
[
m
]
b·a[1],b·a[2],b·a[3],b·a[4],…b·a[m]
b⋅a[1],b⋅a[2],b⋅a[3],b⋅a[4],…b⋅a[m]也构成模
m
m
m的一个完全剩余系。
证明:若存在2个整数
b
⋅
a
[
i
]
b·a[i]
b⋅a[i]和
b
⋅
a
[
j
]
b·a[j]
b⋅a[j]同余即
b
⋅
a
[
i
]
≡
b
⋅
a
[
j
]
(
m
o
d
m
)
.
.
(
i
>
=
1
且
j
>
=
1
)
b·a[i]≡b·a[j](mod\ m)..(i>=1 且 j>=1)
b⋅a[i]≡b⋅a[j](mod m)..(i>=1且j>=1),根据引理1则有
a
[
i
]
≡
a
[
j
]
(
m
o
d
m
)
a[i]≡a[j](mod\ m)
a[i]≡a[j](mod m)。根据完全剩余系的定义可知这是不可能的,因此不存在2个整数
b
⋅
a
[
i
]
b·a[i]
b⋅a[i]和
b
⋅
a
[
j
]
同
余
b·a[j]同余
b⋅a[j]同余。
所以
b
⋅
a
[
1
]
,
b
⋅
a
[
2
]
,
b
⋅
a
[
3
]
,
b
⋅
a
[
4
]
,
…
b
⋅
a
[
m
]
b·a[1],b·a[2],b·a[3],b·a[4],…b·a[m]
b⋅a[1],b⋅a[2],b⋅a[3],b⋅a[4],…b⋅a[m]构成模
m
m
m的一个完全剩余系。
证明费马小定理
构造素数 的完全剩余系
P
=
{
1
,
2
,
3
,
.
.
.
,
p
−
1
}
.
P=\{1,2,3,...,p-1\}.
P={1,2,3,...,p−1}.
因为
(
a
,
p
)
=
1
(a,p)=1
(a,p)=1,由引理2可得
A
=
{
a
,
2
a
,
3
a
,
.
.
.
,
(
p
−
1
)
a
}
A=\{a,2a,3a,...,(p-1)a\}
A={a,2a,3a,...,(p−1)a}
也是
p
p
p的一个完全剩余系。由完全剩余系的性质,
1
×
2
×
3
×
.
.
.
×
(
p
−
1
)
≡
a
⋅
2
a
⋅
3
a
⋅
.
.
.
⋅
(
p
−
1
)
a
(
m
o
d
p
)
1×2×3×...×(p-1)≡a·2a·3a·...·(p-1)a(mod\ p)
1×2×3×...×(p−1)≡a⋅2a⋅3a⋅...⋅(p−1)a(mod p)
即
(
p
−
1
)
!
≡
(
p
−
1
)
!
⋅
a
p
−
1
(
m
o
d
p
)
(p-1)!≡(p-1)!·a^{p-1}(mod\ p)
(p−1)!≡(p−1)!⋅ap−1(mod p)
易知
(
(
p
−
1
)
!
,
p
)
=
1
((p-1)!,p)=1
((p−1)!,p)=1,同余式两边可约去
(
p
−
1
)
!
(p-1)!
(p−1)!,得到
a
p
−
1
≡
1
(
m
o
d
p
)
a^{p-1}≡1(mod\ p)
ap−1≡1(mod p)
这样就证明了费马小定理。
上述均来自百度百科
最终:费马小定理求逆元
现在我们手上有两个式子
一是逆元:
a
∗
x
≡
1
a*x≡1
a∗x≡1
(
m
o
d
(mod
(mod
P
)
P)
P)
二是费马小定理:
a
P
−
1
≡
1
a^{P-1}≡1
aP−1≡1
(
m
o
d
(mod
(mod
P
)
P)
P)
诶,这两个式子是不是有点想
我们把费马小定理的式子转一下
a
P
−
1
≡
1
(
m
o
d
P
)
变
为
a
∗
a
P
−
2
≡
1
(
m
o
d
P
)
a^{P-1}≡1 (mod\ P)变为a*a^{P-2}≡1(mod\ P)
aP−1≡1(mod P)变为a∗aP−2≡1(mod P)
此时再和逆元的式子对比一下
发现:似乎,
x
x
x就是
a
P
−
2
a^{P-2}
aP−2
自信点,把似乎去掉
至此,我们就知道了,在P是质数时,
a
a
a在模
P
P
P的意义下的逆元就是
a
P
−
2
a^{P-2}
aP−2
大功告成
切记,只有模数
P
P
P是质数的情况下才可以用费马小定理求逆元
顺便说一下,求
a
P
−
2
a^{P-2}
aP−2可以用快速幂