1. 程式人生 > >O(n)求1~n的逆元

O(n)求1~n的逆元

n) mod 一個 -m 是個 .html 地址 得到 href

原地址:http://www.2cto.com/kf/201401/272375.html

前提是MOD是個素數。

新學的一個求逆元的方法:

inv[i] = ( MOD - MOD / i ) * inv[MOD%i] % MOD

證明:

設t = MOD / i , k = MOD % i

則有 t * i + k == 0 % MOD //(t*i+k) = MOD

有 -t * i == k % MOD

兩邊同時除以ik得到

-t * inv[k] == inv[i] % MOD

inv[i] == -MOD / i * inv[MOD%i]

inv[i] == ( MOD - MOD / i) * inv[MOD%i]

證畢

能夠O(n)時間求出1~n對模MOD的逆

O(n)求1~n的逆元