欧几里得算法的Mathematica编程

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:35:49
euclid[d_, f_] := Module[{x1 = 1, x2 = 0, x3 = f,
y1 = 0, y2 = 1, y3 = d, q, t1, t2, t3}, x1 = 1; While[1 == 1, If[
y3 == 0, Return[{x3, 0}]; Break[]]; If[y3 == 1, Return[{y3, y2}];
Break[]]; q =
Quotient[x3, y3]; t1 = x1 -
qy1; t2 = x2 - qy2, t3 = x3 - qy3; x1 = y1; x2 = y2; x3 =
y3; y1 = t1; y2 = t2; y3 = t3]]
这个程序有什么问题?不能运行.

euclid[d_, f_] :=
Module[{x1 = 1, x2 = 0, x3 = f, y1 = 0, y2 = 1, y3 = d, q, t1, t2,
t3}, x1 = 1;
While[1 == 1, If[y3 == 0, Return[{x3, 0}]; Break[]];
If[y3 == 1, Return[{y3, y2}];
Break[]]; q = Quotient[x3, y3]; t1 = x1 - q y1; t2 = x2 - q y2;
t3 = x3 - q y3; x1 = y1; x2 = y2; x3 = y3; y1 = t1; y2 = t2;
y3 = t3]]
这样就可以了