扩展欧几里得
阅读本文之前,请先学习裴蜀定理
扩展欧几里得算法,简称扩欧,exgcd
其实就是求 \(ax+by=gcd(a,b)\) 的特解,
求法如下:
\[ax+by=gcd(a,b)=gcd(b, amodb)
\]
\[bx'+(a-⌊\frac{a}{b}⌋b)y'=gcd(b,amodb)
\]
\[ax+by=ay'+b(x'-⌊\frac{a}{b}⌋y')
\]
\[x=y',y=x'-⌊\frac{a}{b}⌋y'
\]
还是拿161和126的例子
\[161x+126y=7=gcd(161,126)
\]
\[126x'+35y'=7=gcd(35,21)
\]
\[35x''+21y''=7=gcd(21,14)
\]
\[21x'''+14y'''=7=gcd(14,7)
\]
\[14x''''+7y''''=7=gcd(7,0)
\]
\[7x'''''+0y'''''=7
\]
根据前边推出来的通解
得:
\[(-7,9),161x+126y=7=gcd(161,126)
\]
\[(2,-7),126x'+35y'=7=gcd(35,21)
\]
\[(-1,2),35x''+21y''=7=gcd(21,14)
\]
\[(1,-1),21x'''+14y'''=7=gcd(14,7)
\]
\[(0,1),14x''''+7y''''=7=gcd(7,0)
\]
\[(1,0),7x'''''+0y'''''=7
\]
所以一开始的那个问题
\[123456789x+1=11y
\]
就很好解决了
特解:x=2,y=22446689
通解就是想个办法给加上两个数的最小公倍数再减去
通解:
\[\begin{cases}
x=2+11n,n∈Z\\
y=22446689+123456789n,n∈Z
\end{cases}
\]