数学逆元计算

本文介绍了如何利用模运算定义计算大整数b的逆元,并给出了计算公式和使用费马小定理进行证明的过程。通过for循环计算阶乘和其逆元,展示了在模p下求逆元的有效方法。
摘要由CSDN通过智能技术生成

定义ax_{} mod_{}p\equiv 1,即是有a=x{_{}}^{-1}(在mod p 的意义下),也就是求倒数

根据定义,则有\frac{a}{b} mod p=a*inv(b),b的逆元就是b^{​{_{}}^{-1}}

所以得出第一个计算式

\frac{a}{b}=a*inv[b]

_{n}^{m}\textrm{C},可以快速计算较大情况:

inv[i]表示i!的逆元的值,则有:

fac[0]=1;
for(int i=1;i<=N;i++){
	fac[i]=fac[i-1]*i%mod;
	inv[i]=invv(fac[i]);
}  

那么求得\frac{n!}{m!(n-m)!}的公式为fac[n]*inv[m]*inv[n-m]

求逆元的证明

inv[p]=p{_{}}^{mod-2}

由费马小定理,得a^{p-1}\equiv 1,此时的p为质数

联立inv[p]=p^{-1}得证

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值