跳转到内容

Talk:扩展欧几里得算法

页面内容不支持其他语言。
添加话题
维基百科,自由的百科全书
Fire-and-Ice在话题“Python 部分程式碼,是不是可以簡化?”中的最新留言:6天前
基础条目 扩展欧几里得算法属于维基百科數學主题的基礎條目第五級。请勇于更新页面以及改進條目。
          本条目属于下列维基专题范畴:
数学专题 (获评未评級低重要度
本条目属于数学专题范畴,该专题旨在改善中文维基百科数学类内容。如果您有意参与,请浏览专题主页、参与讨论,并完成相应的开放性任务。
 未评级未评  根据专题质量评级标准,本条目尚未接受评级。
   根据专题重要度评级标准,本條目已评为低重要度

Python 部分程式碼,是不是可以簡化?

[编辑]

目前長得像這樣:

def ext_euclid(a, b):
    old_s, s = 1, 0
    old_t, t = 0, 1
    old_r, r = a, b
    if b == 0:
        return 1, 0, a
    else:
        while(r!=0):
            q = old_r // r
            old_r, r = r, old_r-q*r
            old_s, s = s, old_s-q*s
            old_t, t = t, old_t-q*t
    return old_s, old_t, old_r

前面關於 b == 0 的判斷似乎有點多餘。是不是可以改成這樣呢?還是有什麼我忘記考慮到的地方?

def ext_euclid(a, b):
    old_s, s = 1, 0
    old_t, t = 0, 1
    old_r, r = a, b
    while r != 0:
        q = old_r // r
        old_r, r = r, old_r-q*r
        old_s, s = s, old_s-q*s
        old_t, t = t, old_t-q*t
    return old_s, old_t, old_r

--Kevin pan 940506留言2025年7月26日 (六) 19:00 (UTC)回复

我认为你写得没错。但我认为算法条目最多只应写伪代码,而不应写任何编程语言的实现。--Fire Ice 2025年7月26日 (六) 19:43 (UTC)回复