扩展欧几里德算法:
已知a, b求解一组x,y,使它们满足等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理)。
扩展欧几里德常用在求解模线性方程及方程组中。
ax+by+c=0可以转化为ax+by=-c;
可以用扩展欧几里德算法来求ax1+by1=gcd(a,b)来求出x1,y1
此时gcd(a,b)不一定等于-c,假设-c=gcd(a,b)*z,可得z=-c/gcd(a,b);
则ax+by=-c <==> (ax1+by1)*z=gcd(a,b)z;
<==> ax1*z+bx2*z=gcd(a,b)z;
因此可以得知x与x1的关系,y与y1的关系:
x=x1*z,y = y1*z(z上面已经求出来了)
时间: 2024-10-24 09:49:18