本文搬运自本人初中博客园博客,若图片加载不出来,可到原文查看:https://www.cnblogs.com/zhangtingxi/p/15685317.html
前言
拓欧总是记不住,总是想不懂,希望写篇博客加深影响。
拓展欧几里得定理推论
求:
ax+by=gcd(a,b)
的其中一组整数解 x,y。
首先可以证明必有解(留坑)
按照欧几里得定理:gcd(a,b)=gcd(b,a%b)
k1x′+k2y′=gcd(b,a%b)
由于我们之前知道 ax+by=gcd(a,b),所以 bx′+(a%b)y′=gcd(b,a%b) 也应该必有解。
由于 a%b=a−⌊ba⌋×b
所以原式为:
bx′+(a−⌊ba⌋×b)×y′=gcd(b,a%b)
拆开:
bx′+a×y′−⌊ba⌋×b×y′=gcd(b,a%b)
合并同类项:
ay′+b(x′−⌊ba⌋×y′)=gcd(b,a%b)
由于 gcd(a,b)=gcd(b,a%b),看回之前的式子 ax+by=gcd(a,b),所以我们可以写出等式:
ay′+b(x′−⌊ba⌋×y′)=ax+by
然后我们可以写出 x,y 的其中一组解为 x=y′,y=(x′−⌊ba⌋×y′)
边界条件:如何 gcd(a,b) 中 b 为0,则 gcd(a,b)=a,然后我们构造一组整数解为:
a×1+b×0=a=gcd(a,b).
拓展欧几里得求逆元
前提:利用拓欧求逆元需满足 gcd(a,p)=1
我们知道,a 在模 p 意义下的逆元 x 可以表示为:ax≡1(modp)
对于我们求出的其中一组的 ax+py=gcd(a,p),由于我们保证了 gcd(a,p)=1,所以 ax+py=1,移项得:
ax=1−py
在模 p 意义下,ax 与 1−py 相同。而 py 为 p 的倍数,所以在模 p 意义下 ax=1,即:
ax≡1(modp)
此时 x 即为 a 在模 p 意义下的逆元