传送门->http://blog.youkuaiyun.com/iamzky/article/details/21246493<-
这是一个学长的博客,,但是看了好几遍都没记住,,所以决定自己写一下。
所谓O(n)求逆元就是递推,下面是证明:
inv[i]=(Mod-Mod/i)×inv[Mod%i];
证明:
设 t=Mod/i,k=Mod%i
则 t×i+k≡0 (mod Mod)
移项得到 -t×i≡k (mod Mod)
两边同除i*k,即乘以它们的逆元得到: -t×inv[k]≡inv[i] (mod Mod)
将t,k替换回去可以得到: inv[i]≡-Mod/i×inv[Mod%i] (mod Mod)
由于是在模意义下,所以将负数替换: inv[i]≡(Mod-Mod/i)×inv[Mod%i] (mod Mod);
由此 inv[i]=(Mod-Mod/i)×inv[Mod%i] 得证;
注:该结论仅适用于Mod为质数的情况。。