裴蜀定理
定义
若a和b为整数,最大公约数gcd(a,b)=g,则对于任意的整数x和y,ax+by一定为g的倍数,并且一定存在整数\(x_0\)和\(y_0\)。使得 \(ax_0+by_0=g\) 成立
\(161x_0+126y_0=7\)
经过简单计算后可以看出来
\(161×(-7)+126×9=7\)
但是这是怎么算出来的呢
可以按下面的方法理解
把我们上回求gcd的时候得到的式子拿过来
把它转化一下
因为我们要求的是 \(161x_0+126y_0=7\) ,所以我们找到 21-14×1=7 把他上边的三条等式从下往上依次带入
得:
就求出来啦qwq
那是不是还有其他的解
那是肯定的
只要构造一个p,q,满足
因为已经得到了 \(161×(-7)+126×9=7\)
所以只要 \(161×p+126×q=0\) ,-7+p和9+q就是一对可行解
一个简单的想法就是p=126,q=-161,显然成立
其实就是构造二者的公倍数
只要找出最小公倍数,那其他的解不就很好得到了?
那怎么求最小公倍数呢
对161和126分解质因子
那要求最小公倍数,就是要含有两个数所有的质因子呗
我们让161×18,128×23得到的2898,他就是二者的最小公倍数
7就是二者的最大公约数
这里我们顺便就引出了最小公倍数的求法
这样的话我们就找到了另外一个解
这里的18可以看成126/7
23可以看成161/7
那这里我们发现,给18和23乘上一个整数n并不会造成影响
如果我们想求最小正整数解,只需要让\(mod = (161 / 6), x = (x % mod + mod) % mod, y = (y % mod + mod) % mod;\)
至此,我们得到了通解
但是我们只是得到了这个通解,但是不知道他是不是取到了所有的解
证明:
任意两组特解:\((x_1,y_1)\) 和 \((x_2,y_2)\),有:
通解成立
若a和b是整数,最大公约数 \(gcd(a,b)=g\),则对于位置整数x和y,\(ax+by=z\) 有解当且因当 z 是 g 的倍数。
要证
只需要证
最后两边同时乘以z/g不就好了
我们把上上上面的回带过程总结抽象一下,就是扩展欧几里得算法
要听扩展欧几里得,请听下回分解