[数论] 线性求逆元

强颜欢笑 提交于 2019-11-28 01:03:29

线性求逆元

线性求从1到n的$mod \ p$ 的逆元

设$p=ki+r \ (r<i<p,i>1)$  ①

可以得到

$k=\lfloor \frac{p}{i} \rfloor$  ②

$r=p \ mod \ i$  ③

$ki+r\equiv 0 (mod \ p)$  ④

两边同乘$i^{-1}\cdot r^{-1}$得

$kr^{-1}\cdot i^{-1}\equiv 0 (mod \ p)$

移项得$i^{-1}\equiv -kr^{-1} (mod \ p)$  ⑤

将②③代入⑤

得 $i^{-1}\equiv -\lfloor \frac{p}{i} \rfloor\cdot (p \ mod \ i)^{-1}(mod \ p)$

 

由于$1^{-1}\equiv 1 (mod \ p)$

所以1到n $mod \ p$逆元就可以线性递推出来了

 

1 inv[1]=1;
2 for(int i=2;i<=n;i++)
3     inv[i]=-(p/i)*inv[p%i];
View Code
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!