Sto usando il modulo frazioni in Python v3.1 per calcolare il massimo comun divisore. Mi piacerebbe sapere quale algoritmo è usato. Sto indovinando il metodo euclideo, ma vorrei essere sicuro. I documenti (http://docs.python.org/py3k/library/fractions.html?highlight=fractions.gcd#fractions.gcd) non aiutano. Qualcuno può identificarmi?Quale algoritmo utilizza Python in fractions.gcd()?
10
A
risposta
18
Secondo the 3.1.2 source code online, ecco gcd
come definito nella 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
Quindi sì, è l'algoritmo di Euclide, scritto in puro Python.
+1. Definitivo! –
Se stai usando IPython, puoi vedere immediatamente il codice sorgente digitando 'gcd ??' – endolith
In realtà: 'import fractions', quindi:' fractions.gcd ?? 'in IPython. – syntagma