Tôi có mã Python sau đây.
def collatz(n):
if n <= 1:
return True
elif (n%2==0):
return collatz(n/2)
else:
return collatz(3*n+1)
Thời gian chạy của thuật toán này là gì?
Thử:
Nếu biểu thị thời gian chạy của hàm . Sau đó, tôi nghĩ rằng tôi có
{ T ( n ) = 1 cho n ≤ 1 T ( n ) = T ( n / 2 ) cho n thậm chí T ( n ) = T ( 3 n + 1 ) cho n lẻcollatz(n)
Tôi nghĩ sẽ là lg n nếu n chẵn nhưng làm thế nào để tính toán tái phát nói chung?
collatz
thẻ trên MathOverflow, vv nghiên cứu mới nhất cho thấy vấn đề có phẩm chất fractal nội tại làm cho nó khó khăn.