我正在尝试解决最长Collatz序列问题。有1000000个起始值,我必须找出哪个初始值具有最大的成员数。
问题是我必须操作计算机大约1分钟,这比5秒还要长。
这是我的代码。我想知道我必须修改哪个部分以减少计算时间。
谢谢!
enter code here
n=1000000
def f(n):
i=0
while(n>=1):
i=i+1
if n==1 or n==0:
break
if n%2!=0:
n=3*n+1
else:
n=n/2
return i
a=[(f(i)) for i in range(0,1000000)]
print(max(a))
print(a.index(max(a)))