模意义下求乘法逆元的各种姿势

乘法逆元
定义

ax1modp a x ≡ 1 mod p ,则称 x x a modp mod p 意义下的逆元,记为 xa1modp x ≡ a − 1 mod p

当然, a a 也是x modp mod p 意义下的逆元

ab=ab1 a b = a ⋅ b − 1

几乎所有模意义下的除法都需要逆元

有逆元的充要条件

a a modp意义下有逆元的充要条件: (a,p)=1 ( a , p ) = 1

逆元的求法
EXGCD

若求 a a modp意义下的逆元,则可以转化为求解如下方程

ax+py=1 a x + p y = 1

有EXGCD的相关知识可以得到,当且仅当 (a,p)=1 ( a , p ) = 1 时有解(有逆元的充要条件的证明)

费马小定理

如果 p p 为质数,则ap11modp

aap21 ∴ a ⋅ a p − 2 ≡ 1

ap2a1 ∴ a p − 2 ≡ a − 1

欧拉定理

将费马小定理中的 p2 p − 2 换为 φ(p)1 φ ( p ) − 1 即可

p p 可以不是质数

递推

用于O(n)预处理 [1n] [ 1 ⋯ n ] 的逆元

构造 p=ki+r p = k i + r

ki+r0modp ∴ k i + r ≡ 0 mod p

ki=r ∴ k i = − r

i1=kr1 ∴ i − 1 = − k ⋅ r − 1

其中 k=pi,r=p%i k = ⌊ p i ⌋ , r = p % i

i1=piinv[p%i] ∴ i − 1 = − ⌊ p i ⌋ ⋅ i n v [ p % i ]

为了防止出现负数,通常的写法是这样的

inv[i]=(mod-mod/i)*inv[mod%i]%mod;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值