4
所以我想寫一些python代碼,讓我找到基於用於獲得1的n個步驟的collatz猜測。
我有一些可以用少量的步驟工作,但是大量的步驟需要很長的時間來計算。所以我想知道如果任何人都知道的方式來加快這一進程:尋找collatz猜想,使用n個步驟來獲得一個使用python
def cj_steps(n):
x = 1
while True:
if len(cj(x))-1 == n:
return x
else:
x +=1
此:
def cj(i):
out = []
out.append(i)
while i != 1:
if i%2==0:
i = i/2
out.append(i)
else:
i = i*3+1
out.append(i)
return out
該循環槽的所有數字,直到一個我找的步驟量相匹配,正如我所說的,只需少量步驟即可完成,但需要採取812步驟,而已經開始耗費大量時間的步驟。所以我希望有人能給我提示或提示如何提高這個功能的速度。
謝謝。
當然,這個想法使用了大量的內存,所以它是一個使用更多內存來使用更少時間的典型例子。即使如此,這確實回答了OP,所以+1! –