Algorithm 我的多项式GCD在Maple中的实现给出了错误的结果

Algorithm 我的多项式GCD在Maple中的实现给出了错误的结果,algorithm,division,polynomials,maple,greatest-common-divisor,Algorithm,Division,Polynomials,Maple,Greatest Common Divisor,我是Maple的新手,尝试使用欧几里德算法实现2个多项式的gcd 我很确定我的代码,但是我得到了奇怪的分数结果 with(Algebraic); euclide:=proc(a, b) local r0, r1, tmp, q; r0 := a; r1 := b; while (degree(r0) > degree(r1)) and (r1 <> 0) do q := Quotient(r0, r1, x); tmp := r0 - q * r1

我是Maple的新手,尝试使用欧几里德算法实现2个多项式的gcd

我很确定我的代码,但是我得到了奇怪的分数结果

with(Algebraic);

euclide:=proc(a, b)
local r0, r1, tmp, q;
  r0 := a;
  r1 := b;
  while (degree(r0) > degree(r1)) and (r1 <> 0) do
    q := Quotient(r0, r1, x);
    tmp := r0 - q * r1;
    r0 := r1;
    r1 := tmp;
    r0 := expand(r0);
    r1 := expand(r1);
  od;
  return expand(r0);
end;
带(代数);
欧几里德:=proc(a,b)
本地r0,r1,tmp,q;
r0:=a;
r1:=b;
而(度(r0)>度(r1))和(r10)则
q:=商(r0,r1,x);
tmp:=r0-q*r1;
r0:=r1;
r1:=tmp;
r0:=扩展(r0);
r1:=扩展(r1);
od;
返回扩展(r0);
结束;

当在随机多项式上运行我的算法时,我得到的结果是一个非常奇怪的分数结果,而Maple中的gcd函数给出了输出1。我不理解程序中的错误。

例如,哪些分数?使GCD等于1/34254353与GCD等于1相同。由于第一个元素是多项式环中的可逆元素,因此GCD在欧几里德除法环中与可逆元素相乘时是唯一的。在您的例子中,可逆元素可能是非零常数多项式。