У мене є наступний код 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 тощо. Останні дослідження показують, що проблема має властиві фрактальні якості, що робить її важкою.