线性求逆元及其过程

写在前面

连续两天考了求逆元。。。。。。所以想着写一篇关于线性求逆元的博客。。

先给程序:

inv[1]=1;
for(int i=2;i<=n;++i)
  inv[i]=MOD-(long long)MOD/i*inv[MOD%i]%MOD;

然后一波推导:

我们要求i在模p意义下的逆元inv[i],那么我们就设ki+r=p,所以ki+r\equiv0(mod p)。

移项可以得到:r\equiv-ki(mod p)。

两边同时除以ir,就可以得到这个式子:

\frac{1}{i}\ \equiv \frac{-k}{r}(mod p)

那么i分之一就是i在模p意义下的逆元,r分之一就是r在模p意义下的逆元。

变成这个式子:inv[i]\equiv-k*inv[r](mod p)。

因为r<i,所以r=p%i,式子变为inv[i]\equiv-k*inv[p%i](mod p)。

右边加上一个p:inv[i]=p-k*inv[p%i],k化为p/i(向下取整了所以不考虑r),最后inv[i]就化为了p-p/i*inv[p%i],就是上面的递推式。证毕。


PS:如果有纰漏之处请dalao指出!蒟蒻马上修正!

posted @ 2018-10-17 16:11  Ishtar~  阅读(263)  评论(0编辑  收藏  举报