Ich habe den folgenden Python-Code.
def collatz(n):
if n <= 1:
return True
elif (n%2==0):
return collatz(n/2)
else:
return collatz(3*n+1)
Wie ist die Laufzeit dieses Algorithmus?
Versuchen:
Wenn die Laufzeit der Funktion bezeichnet . Dann denke ich, ich habe
{ T ( n ) = 1 für n ≤ 1 T ( n ) = T ( n / 2 ) für n gerade T ( n ) = T ( 3 n + 1 ) für n ungeradecollatz(n)
Ich denke, wird lg n sein, wenn n gerade ist, aber wie berechnet man die Wiederholung im Allgemeinen?
collatz
Tag für MathOverflow usw. Neueste Untersuchungen zeigen, dass das Problem fraktale Eigenschaften hat, die es schwierig machen.