推一发逆元

以前一直看不懂某一步推到,现在终于自己推出来了。。

当然是O(n)版的。

设我们一直1~n-1的逆元,i的逆元为inv[i]。

由于从x*i≡y(%p)可以推出x*inv[y]≡inv[i](%p),所以我们就要来构造出x和y。

由于在同余方程中有p≡x*i-y(0<=y<i),则x≡(p+y)/i。

这里的除是整除,则需要(p%i+y)%i≡0。

由于y<i,则有p%i≡i-y,则,y≡i-p%i,x=(p+y)/i。

则x*inv[y]可知,inv[i]可知。O(n)得解。

posted @ 2017-11-08 20:57 PinkExSu0v0 阅读(...) 评论(...) 编辑 收藏