线性求逆元

来源:互联网 发布:台湾未来 知乎 编辑:程序博客网 时间:2024/06/07 19:40

以前一直是用费马小定理或exgcd 今天看到一种线性的方法 比较方便

首先P是要取模的数
显然对于一个正整数iP=Pii+P%i
a=Pi,b=P%i
ai+b0(modP)
aib(modP)
i1ab(modP)
i1Pi(P%i)1(modP)
(P%i)1肯定比i小 所以可以根据前面求出的逆元递推得
码量和时间复杂度都比之前优很多..

Inv[1]=1;for (i=2;i<=n;i++) Inv[i]=1LL*(P-P/i)*Inv[P%i]%P;

Date:2017/10/16
By CalvinJin

原创粉丝点击