一.百度百科的定义:
对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然
存在整数对 x,y ,使得 gcd(a,b)=ax+by。
这说明两点
1.贝祖等式中,a,b必须都要大于0
2.a,b中允许有一个为0
二.当a,b中有一个为负数的处理办法
三.应用
摘自博客https://blog.csdn.net/weixin_42165981/article/details/81185418
应用一:求解乘法逆元(A和MOD互素的时候才存在,否则不存在逆元)
应用二:求解ax=c(mod b)(也就是ax+by=c(同上逆元的变化方式))的x的最小整数解
ax=c(mod b)可以转化为ax+by=c。(变化的方式同求逆元的时候的变化。)
我们可以用扩展欧几里得算法得出ax+by=gcd(a,b) 的一组解(x1,y1),那么其他解呢?任取另一组解(x2,y2),则ax1+by1=ax2+by2(因为它们都等于gcd(a,b) ),变形得a(x1-x2)=b(y2-y1)。假设gcd(a,b)=g,方程左右两边同时除以g(如果g=0,说明a或b等于0,可以特殊判断),得a'(x1-x2)=b'(y2-y1),其中a'=a/g,b'=b/g。注意,此时a'和b'互素(想想分数的化简),则因此x1-x2一定是b'的整数倍(因为a'中不包含b',所以x1-x2一定包含b')。设它为kb',计算得y2-y1=ka'。注意,上述的推导过程并没有用到“ax+by的右边是什么”,因此得出以下结论:
设a,b,c为任意整数,若方程ax+by=c的一组解是(x0,y0),则它的任意整数解都可以写成(x0+kb',y0-ka'),其中a'=a/gcd(a,b),b'=b/gcd(a,b),k取任意整数。
这样我们就可以求出来最小的整数解了。(先用扩展欧几里得算法求出一组解,然后进行变换)。
应用三:直线上的整数点。在平面坐标系下,ax+by=c是一条直线方程。知道一个点,我们就可以用应用二中的方法去求直线上的所有整数点。