所以我正在尝试编写一些python代码,让我根据用于获得1的n个步骤找到collatz猜想.
我有一些可以使用少量步骤,但是大量的步骤需要很长时间来计算.所以我想知道你们中是否有人知道加速这个过程的方法:
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步骤,这已经开始耗费大量时间.所以我希望有人可以给我一个暗示或提示如何提高这个功能的速度.
谢谢.