0

我正在尝试做一个获取数字列表的练习,并显示如下元素列表:如果 A=[a0,a1,a2] 那么有 U=[u0,u1,u2],知道 a0 *u0 + a1*u1 + a2*u2 = d 并且 d 是 A 的 gcd。

对于 2 个元素是一件非常简单的事情,因为 Sage 具有从 a0 和 a1 中检索 u0 和 u1 的功能:

A=[15,21]
(d,u0,u1)=xgcd(a[0],a[1])

我只是不明白我怎么能用 n 个元素的列表来做到这一点。

4

2 回答 2

2

注意 gcd(a, b, c) = gcd((gcd(a, b), c)。这意味着你可以重复使用内置函数来计算你想要的系数。

于 2012-11-21T00:59:08.757 回答
0

你帮了我很多,来到这个:

x1=[1256,5468,5552,1465]
n=-1
for i in x1:
    n=n+1
(d,w,x)=xgcd(x1[n-1],x1[n])
u1=[w,x]
n=n-2
while n>=0:
    div=d
    (d,u,v)=xgcd(x1[n],div)
    position=0
    for j in u1:
        a=j*v
        u1[position]=a
        position=position+1
    u1=[u]+u1
    n=n-1
u1

它有效;)

于 2012-11-21T01:33:44.947 回答