Saya memiliki kode Python berikut.
def collatz(n):
if n <= 1:
return True
elif (n%2==0):
return collatz(n/2)
else:
return collatz(3*n+1)
Berapa waktu berjalan dari algoritma ini?
Mencoba:
Jika menunjukkan waktu fungsi berjalan . Maka saya pikir saya memiliki
{ T ( n ) = 1 untuk n ≤ 1 T ( n ) = T ( n / 2 ) untuk n bahkan T ( n ) = T ( 3 n + 1 ) untuk n ganjilcollatz(n)
Saya pikir akan menjadi lg n jika n adalah genap tetapi bagaimana menghitung pengulangan secara umum?
collatz
tag di MathOverflow dll. penelitian terbaru menunjukkan masalah memiliki kualitas fraktal intrinsik membuatnya sulit.