0

数値のリストを取得する演習を作成しようとしています。次のような要素のリストを表示します: A=[a0,a1,a2] の場合、a0 を知っている場合、U=[u0,u1,u2] があります。 *u0 + a1*u1 + a2*u2 = d であり、d は A の gcd です。

Sage には a0 と a1 から u0 と u1 を取得する関数があるため、2 つの要素の場合は非常に単純です。

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 に答える