У меня есть следующий код Python.
def collatz(n):
if n <= 1:
return True
elif (n%2==0):
return collatz(n/2)
else:
return collatz(3*n+1)
Каково время работы этого алгоритма?
Пытаться:
Если обозначает время работы функции . Тогда я думаю, что у меня
{ T ( n ) = 1 для n ≤ 1 T ( n ) = T ( n / 2 ) для n четных T ( n ) = T ( 3 n + 1 ) для n нечетныхcollatz(n)
Я думаю, что будет если четное, но как рассчитать повторение в целом?lg n n
collatz
тег на MathOverflow и т. д. последние исследования показывают, что проблема имеет внутренние фрактальные качества, что усложняет задачу.