本文搬运自本人初中博客园博客,若图片加载不出来,可到原文查看:https://www.cnblogs.com/zhangtingxi/p/16531857.html
相关文章:
这篇文章内容之前已经记过一次了,但用的时候又忘了,再记一下
之前的这篇会详细很多
拓展欧几里得复习
ax+by=gcd(a,b)
其中 a,b 已知,求 x,y
正常的推导应该都会,拆开后合并同类项最终化为:
ay′+b(x′−bay′)=gcd(b,amodb)
所以 x=y′,y=bay′,代码实现时我们是知道当前这一步的 x′,y′,要推回上一步的 x,y,直接套上面式子
边界条件和打普通gcd一样,若 b=0 就结束,此时 x=1,y=0
拓欧求逆元
前提:gcd(a,p)=1
求 a 在模 p 意义下的逆元,可以表示为求 ax≡1(modp) 中的 x
怎么用拓欧做?回到拓欧式子:
ax+by=gcd(a,b)
已知的是 a,p,直接套进去:
ax+py=gcd(a,p)
gcd(a,p) 已知为1:
ax+py=1
那模 p 后必然相同,即:
ax+py≡1(modp)
约去 py:
ax≡1(modb)
x 就是答案