推导过程
求 ax+by=gcd(a,b)设已递归求得x′,y′满足: bx′+(a%b)y′=gcd(b,a%b)=ax+bybx′+(a−a/b∗b)y′=ax+bybx′+ay′−b(a/b)y′=ax+bya(y′−x)+b(x′−(a/b)y′−y)=0x=y′y=x′−(a/b)y′b=0 时,ax=a,取 x=1,y=0
模板
应用
解不定方程
ax+by=m
:
有解需满足
gcd(a,b)|m
。
a′=a/gcd(a,b),b′=b/gcd(a,b),m′=m/gcd(a,b)
现在我们要求
a′x+b′y=m′
。
先用
exgcd
解出
a′x+b′y=gcd(a′,b′)=1
的一组解
x′,y′
,
其他解都可表示为
x=x′+tb′,y=y′−ta′,t∈Z
将其都乘
m/gcd(a,b)
就是原方程的解。
求单个数的逆元:
aa−1≡1(modm)⇔aa−1−km=1
解模数不互质的线性方程组:
戳这里