逆元
•何为逆元
方程ax≡1(mod p),的解称为a关于模p的逆,当gcd(a,p)==1(即a,p互质)时,方程有唯一解,否则无解。
逆元有对称性,x是a关于b的逆元,那a也是x关于b的逆元。
线性递推求逆元
线性求从1到n的$mod \ p$ 的逆元
设$p=ki+r \ (r<i<p,i>1)$ ①
可以得到
$k=\lfloor \frac{p}{i} \rfloor$ ②
$r=p \ mod \ i$ ③
$ki+r\equiv 0 (mod \ p)$ ④
两边同乘$i^{-1}\cdot r^{-1}$得
$kr^{-1}\cdot i^{-1}\equiv 0 (mod \ p)$
移项得$i^{-1}\equiv -kr^{-1} (mod \ p)$ ⑤
将②③代入⑤
得 $i^{-1}\equiv -\lfloor \frac{p}{i} \rfloor\cdot (p \ mod \ i)^{-1}(mod \ p)$
由于$1^{-1}\equiv 1 (mod \ p)$
所以1到n $mod \ p$逆元就可以线性递推出来了
•代码
线性求逆元1 inv[1]=1; 2 for(int i=2;i<=n;i++) 3 inv[i]=-(p/i)*inv[p%i];