Größter gemeinsamer Teiler / kleinstes gem. Vielfaches
Verfasst: Freitag 10. März 2006, 16:38
Code: Alles auswählen
def ggt(x, y):
return not y and x or ggt(y,x%y)
r2d2
*edit ggt statt ggt2
EDIT (jens): Titel geändert
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
def ggt(x, y):
return not y and x or ggt(y,x%y)
Code: Alles auswählen
def ggt(x, y):
while y != 0:
x,y = y, x%y
return x
Wo liegt da das Problem?rayo hat geschrieben:Hi
Ich darf ja auch keine Abstände in den Variablennamen haben![]()
Code: Alles auswählen
def größtergemeinsamerteiler(x, y):
Code: Alles auswählen
def ggt(x, y):
while y:
x,y = y, x%y
return x
Code: Alles auswählen
def ggt(x, y):
if y == 0:
return x
else:
return ggt(y,x%y)
Deswegen auch die "Schwanzrekursion."ich habe einen ausflug in die welt der funktionalen programmierung gemacht
Code: Alles auswählen
def ggt(x, y):
return not y and x or ggt(y,x%y)
def ggt1(x, y):
if x > y:
return ggt1(x-y, y)
if x < y:
return ggt1(x, y-x)
if x == y:
return x
def ggt2(x, y):
while y:
x,y = y, x%y
return x
import time
def zeittest(func):
t = time.clock()
i = 0
while i < 10000:
# ggt[2,3](20,30)
func(20,30)
i += 1
print time.clock() - t
print "ggt:",
zeittest(ggt)
print "ggt1:",
zeittest(ggt1)
print "ggt2:",
zeittest(ggt2)
Endrekursion.modelnine hat geschrieben:Deswegen auch die "Schwanzrekursion."(wie sagt man dazu auf Deutsch?)
Weil er in Python nicht optimiert wird und deswegen im Vergleich zu seinen iterativen Mitstreitern Ressourcen verschwendet?modelnine hat geschrieben:Deswegen würde ich dem Algorithmus von rayo sofort und unbedingt den Vorzug geben.
Naja, wer sich das fragt, hätte mal irgendwo zwischen der siebten und der zehnten Klasse besser aufpassen sollen in Mathematikjens hat geschrieben:Wer sicht noch fragt, was ggt oder kgv heißen soll:
D'oh ... ich hab den Thread einfach unter den seit dem letzten Besuch geposteten Beiträgen gesehen, und gar nicht weiter auf das Datum geachtetDasIch hat geschrieben:Euch beiden ist schon klar dass der Thread schon über 2 Jahre alt ist?