乘法逆元学习笔记

乘法逆元是一个比较困难的话题,许多老师都讲过,但是目前没有老师能清晰地讲解。所以我就在这里整合每个老师讲的内容、一些其它的资料和我自己的理解,写下了这一篇学习笔记。

逆元是什么

a a a x x x p p p 均为正整数,且 a a a p p p 互质,并满足
a x ≡ 1 ( m o d p ) (1) ax \equiv 1 \pmod p \tag{1} ax1(modp)(1)在模 p p p 意义下 x x x a a a 的倒数,则此时 x x x a a a 的乘法逆元,即在模 p p p 意义下一个数除以某个除数等于乘这个除数的乘法逆元。

如何求逆元

通过公式 ( 1 ) (1) (1),可以推导出存在正数 y y y,使得 a x + p y = 1 (2) ax+py=1\tag{2} ax+py=1(2)此时该式为一个二元一次方程,可以使用扩展欧几里得解,解完后 x x x 的值即为 a a a 的逆元。

扩展欧几里得

扩展欧几里得是一种可以解不定方程 a x + b y = gcd ⁡ ( a , b ) (3) ax+by=\gcd(a,b)\tag{3} ax+by=gcd(a,b)(3)的一种算法,它通过将上述方程转化为 b x ′ + ( a   m o d   b ) y ′ = gcd ⁡ ( b , a   m o d   b ) (4) bx'+(a\bmod b)y'=\gcd(b,a\bmod b)\tag{4} bx+(amodb)y=gcd(b,amodb)(4)而这个方程又可以继续用该方法转化,直至转化为 b = 0 b=0 b=0 时方程的解即为 x = 1 , y ∈ R x=1,y\in\mathbb{R} x=1,yR,此处取 y = 0 y=0 y=0,解完这个方程后就得将这个方程的解推导到上一个方程,由公式 ( 4 ) (4) (4)转化即可得出 b x ′ + ( a − b ⌊ a b ⌋ ) y ′ = gcd ⁡ ( b , a   m o d   b ) (5) bx'+(a-b\lfloor \frac{a}{b} \rfloor)y'=\gcd(b,a \bmod b)\tag{5} bx+(abba)y=gcd(b,amodb)(5)
又由公式 ( 4 ) (4) (4) ( 5 ) (5) (5) a y ′ + b ( x ′ + ⌊ a b ⌋ y ′ ) = a x + b y (6) ay'+b(x'+\lfloor \frac{a}{b} \rfloor y')=ax+by\tag{6} ay+b(x+bay)=ax+by(6)故原不定方程的一组解为 x = y ′ , y = x ′ + ⌊ a b ⌋ y ′ (7) x=y',y=x'+\lfloor \dfrac{a}{b} \rfloor y'\tag{7} x=y,y=x+bay(7)
通过这种方法将转化后的方程的解推导到原方程的解,一层一层地往上推,即可得出原方程的一组解。

逆元的其它性质和相关定理

  1. (费马小定理)若 p p p 是质数,且 a a a 不是 p p p 的倍数,则 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv 1 \pmod p ap11(modp)
    证明:参见百度百科

  2. (费马小定理推论)若 p p p 是质数,且 a a a 不是 p p p 的倍数,则 a p − 2 a^{p-2} ap2 为模 p p p 意义下 a a a 的逆元。
    证明:由费马小定理得 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv 1 \pmod p ap11(modp)即可推出 a p − 2 ≡ a − 1 ( m o d p ) a^{p-2}\equiv a^{-1} \pmod p ap2a1(modp)由此可以得出 a p − 2 a^{p-2} ap2 为模 p p p 意义下 a a a 的逆元。

  3. (若 p p p 是质数,如何求 i ! ( 1 ≤ i ≤ n ) i!(1\leq i\leq n) i!(1in) 在模 p p p 意义下的的逆元)先求出 f ( i ) = i !   m o d   p f(i)=i!\bmod p f(i)=i!modp然后通过费马小定理推论得 f ( n ) − 1 = f ( n ) p − 2 f(n)^{-1}=f(n)^{p-2} f(n)1=f(n)p2继续向下推导得 f ( i − 1 ) − 1 = [ f ( i ) i ] − 1 = f ( i ) − 1 i − 1 = i f ( i ) − 1 f(i-1)^{-1}=\left[\frac{f(i)}{i}\right]^{-1}=\frac{f(i)^{-1}}{i^{-1}}=if(i)^{-1} f(i1)1=[if(i)]1=i1f(i)1=if(i)1然后即可得出所有阶乘的逆元。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值