線性求逆元及其過程

2022-08-21 03:03:08 字數 518 閱讀 6980

連續兩天考了求逆元。。。。。。所以想著寫一篇關於線性求逆元的部落格。。

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

-ki(mod p)。

兩邊同時除以ir,就可以得到這個式子:

(mod p)

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

變成這個式子:inv[i]

-k*inv[r](mod p)。

因為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 r移項可以得到 r 兩邊同時除以i...

線性求逆元

在某些組合數的計數問題中,經常會用到逆元,這裡我們講一下如何線性求出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也可以用另...