10
我在Python v3.1中使用分數模塊來計算最大公約數。我想知道使用什麼算法。我在猜測歐幾里德方法,但想確定一下。文檔(http://docs.python.org/py3k/library/fractions.html?highlight=fractions.gcd#fractions.gcd)沒有幫助。有人能告訴我嗎?Python在fractions.gcd()中使用什麼算法?
我在Python v3.1中使用分數模塊來計算最大公約數。我想知道使用什麼算法。我在猜測歐幾里德方法,但想確定一下。文檔(http://docs.python.org/py3k/library/fractions.html?highlight=fractions.gcd#fractions.gcd)沒有幫助。有人能告訴我嗎?Python在fractions.gcd()中使用什麼算法?
據the 3.1.2 source code online,這裏的gcd
爲Python-3.1.2/Lib/fractions.py
定義:
def gcd(a, b):
"""Calculate the Greatest Common Divisor of a and b.
Unless b==0, the result will have the same sign as b (so that when
b is divided by it, the result comes out positive).
"""
while b:
a, b = b, a%b
return a
所以,是的,它是歐幾里德算法,寫在純Python。
+1。權威! – 2010-06-03 02:37:04
如果您使用的是IPython,您可以通過輸入'gcd ??' – endolith 2012-06-14 03:08:12
立即看到源代碼。它實際上是:'import fractions',然後是:IPython中的fractions.gcd ??'。 – syntagma 2013-02-24 22:48:23