連續兩天考了求逆元。。。。。。所以想著寫一篇關於線性求逆元的部落格。。
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移項可以得到:r
兩邊同時除以ir,就可以得到這個式子:
那麼i分之一就是i在模p意義下的逆元,r分之一就是r在模p意義下的逆元。
變成這個式子:inv[i]
因為r右邊加上乙個p:inv[i]=p-k*inv[p%i],k化為p/i(向下取整了所以不考慮r),最後inv[i]就化為了p-p/i*inv[p%i],就是上面的遞推式。證畢。
ps:如果有紕漏之處請dalao指出!蒟蒻馬上修正!
線性求逆元及其過程
連續兩天考了求逆元。所以想著寫一篇關於線性求逆元的部落格。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 r0 mod p 移項可以得到 r...
線性求逆元
在某些組合數的計數問題中,經常會用到逆元,這裡我們講一下如何線性求出1到n在模p意義下的逆元,注意p為質數。假設我們當前要求a在模p意義下的逆元。令p ak r,0 rp a k r,0 r 那麼 ak r 0 modp a k r 0 modp 然後恒等式變形,兩邊同時乘a 1 r 1 a 1 r...
線性求逆元
求逆元可以用費馬小定理或者擴充套件歐幾里得,也可以用如下的o n 演算法 背下來 這個對p是有要求的,p 也就是模數 必須是質數 p不是質數的話,就用擴充套件歐幾里得比較方便了 兩個數有逆元當且僅當互質!inv 1 1 for i 2 i p i inv i p p i inv p i p也可以用另...