【问题标题】:Euclidean algorithm on Sage for more than 2 elementsSage 上超过 2 个元素的欧几里得算法
【发布时间】:2012-11-21 00:46:41
【问题描述】:

我正在尝试做一个获取数字列表的练习,并显示如下元素列表:如果 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 个元素的列表来做到这一点。

【问题讨论】:

    标签: list greatest-common-divisor sage


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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
      

      它有效;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        • 2020-09-10
        • 2016-11-28
        • 2020-11-11
        • 1970-01-01
        相关资源
        最近更新 更多