Mam następujący kod Python.
def collatz(n):
if n <= 1:
return True
elif (n%2==0):
return collatz(n/2)
else:
return collatz(3*n+1)
Jaki jest czas działania tego algorytmu?
Próbować:
Jeśli oznacza czas działania funkcji . Więc myślę, że mam
{ T ( n ) = 1 dla n ≤ 1 T ( n ) = T ( n / 2 ) dla n parzystych T ( n ) = T ( 3 n + 1 ) dla n nieparzystychcollatz(n)
Myślę, że będzie lg n, jeśli n jest parzyste, ale jak ogólnie obliczyć nawrót?
collatz
znacznik na MathOverflow itp. Ostatnie badania pokazują, że problem ma wewnętrzne cechy fraktali, co utrudnia.