刚学了乘法逆元,虽然不是特别懂,但还是来水水博客吧。
乘法逆元的定义
群G中任意一个元素a,都在G中有唯一的逆元a',具有性质aa'=a'a=e,其中e为群的单位元。
————某度百科
如果你看不懂,没事,我也看不懂 简单来说
若\(a\times x\equiv1(mod\;b)且a与b互质,则称x为a的逆元,记作a^{-1}\)
求逆元的方法
1.快速幂
用费马小定理可以证明\(a^{-1}=a^{b-2} (mod\;b)\) (证明略)
所以我们只要求出\(a^{-2}\)就可以了
2.扩展欧几里得
将原式变形,发现我们只要求出\(a\times x+ b\times y= 1\)就可以了
3.线性递推
不会证明QAQ,直接上递推式吧
//求1~n mod p 的乘法逆元
ans[1]=1;
for(int i=2;i<=n;i++)
{
ans[i]=-(p/i)*ans[p%i];
ans[i]=(ans[i]%p+p)%p;
printf("%lld\n",ans[i]);
}