小编Bar*_*end的帖子

使用python查找使用n步到达一个的collat​​z猜想

所以我正在尝试编写一些python代码,让我根据用于获得1的n个步骤找到collat​​z猜想.
我有一些可以使用少量步骤,但是大量的步骤需要很长时间来计算.所以我想知道你们中是否有人知道加速这个过程的方法:

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
Run Code Online (Sandbox Code Playgroud)

这将循环所有数字,直到一个匹配我正在寻找的步骤数量:

def cj_steps(n):
x = 1
while True:
    if len(cj(x))-1 ==  n:
        return x
    else:
        x +=1
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,这可以使用少量步骤,但需要采取812步骤,这已经开始耗费大量时间.所以我希望有人可以给我一个暗示或提示如何提高这个功能的速度.

谢谢.

python optimization

4
推荐指数
1
解决办法
152
查看次数

标签 统计

optimization ×1

python ×1