如何减少寻找最大collat​​z序列的时间?

时间:2018-12-17 11:24:54

标签: python list while-loop sequence collatz

我正在尝试解决最长Collat​​z序列问题。有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)))

0 个答案:

没有答案