
本文共 2881 字,大约阅读时间需要 9 分钟。
费马小定理求逆元
首先:逆元定义
我们先说明一下什么是逆元
逆元是指,在模 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可以用快速幂
发表评论
最新留言
关于作者
