MATLAB扩展欧几里得算法实现方法
MATLAB扩展欧几里得算法是一种常见的求最大公约数的算法,采用了辗转相除的思想。具体实现方法如下:
function [gcd, x, y] = ext_gcd(a, b)
%扩展欧几里得算法
%输入参数:a,b
%输出参数:gcd(最大公约数),x,y(贝祖等式ax + by = gcd中的一组解)
if b == 0
gcd = a;
x = 1;
y = 0;
else
[gcd, x_tmp, y_tmp] = ext_gcd(b, mod(a, b));
x = y_tmp;
y = x_tmp - fix(a/b)*y_tmp;
end
end
【注意】扩展欧几里得算法只能求出最大公约数的值,并不能求出最小公倍数。
用户评论