逆元以及线性逆元求法
来源:互联网 发布:win10网络连接感叹号 编辑:程序博客网 时间:2024/05/01 23:48
对于一个数a,如果a*a^-1=1(modp),那么a^-1是a对于p的逆元
在除法中,除以一个数等于乘上这个数的逆元,即x/y=x*y^-1(modp)
求单个逆元可以用费尔马小定理
对于质数p,a^(p-1)=1(modp),那么a^(p-2)*a=a^(p-1)=1(modp),所以a^-1=a^(p-2),用快速幂求即可
但对于一堆数,例如1~n一一求逆元,用快速幂是O(nlogn)的,若n达到1e7会爆炸,所以需要线性求逆元的方法
假设当前要求数i的逆元,且1~i-1的逆元都已经求好了,设模数p为质数
p可以表示为p=k*i+r的形式,其中k相当于除数,i相当于商,r相当于余数
那么k*i+r=0(modp)这是显然的
模等式两边同时乘以i^-1*r^-1,因为i*i^-1=1(modp),所以等式变成了k*r^-1+i^-1=0(modp)
移项,得i^-1=-k*r^-1
这其中,k是除数(下取整),相当于p/i,r是余数,相当于p%i
p%i一定小于i,而因为p是质数,所以p%i!=0
1~i-1的所有数的逆元我们都是知道的,以inv[]表示
那么我们就有了inv[i]的递推式:inv[i]=-(p/i)*inv[p%i]=p-((p/i)*inv[p%i])%p
其中,1^-1=1
于是我们就有了线性的逆元求法
阅读全文
0 0
- 逆元以及线性逆元求法
- 逆元线性求法
- 乘法逆元求法
- 逆元求法
- 乘法逆元的求法
- 乘法逆元的求法
- 从AtCoder RC 077D: 11 中学习逆元的线性求法
- 【转】逆元的几种求法
- 乘法逆元的快捷求法
- 乘法逆元的几种求法
- 逆元的两种求法
- 中国剩余定理与逆元的求法与应用
- 乘法逆元总结(求法及递推式)
- 乘法逆元的几种求法总结
- 线性求所有逆元的方法
- 逆元
- 逆元
- 逆元
- 3192: [JLOI2013]删除物品
- TestLink学习六:TestLink1.9.13工作使用小结
- STM32硬件IIC驱动设计
- jdbc中实现模糊查询
- MVC+MVP
- 逆元以及线性逆元求法
- Python探索记(05)——if和else
- 转盘
- Android图表控件MPAndroidChart——曲线图LineChart(多条曲线)动态添加数据
- codeforces818D Multicolored Cars -- 线段树上二分
- 安卓内存优化第一弹
- TestLink学习七:TestLink测试用例Excel转换XML工具
- JAVA过滤器的使用(Filter)
- 一次网络异常的Hadoop trouble shooting 过程