私は1になるために使用されたnステップに基づいてcollatzの推測を見つけることができるいくつかのPythonコードを書こうとしています。
私は少量のステップで動作するが、大量のステップが計算に時間がかかる。あなたのいずれかがこのプロセスをスピードアップする方法を知っているのであれば、私は思っていた:Pythonを使用して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
1は、私が探している段階の量に一致するまでこれがトラフすべての数字をループ:
def cj_steps(n):
x = 1
while True:
if len(cj(x))-1 == n:
return x
else:
x +=1
この私が言ったように、少しのステップで動作しますが、すでに812ステップを取っています。何回も時間がかかり始めています。だから私は誰かが私にこの機能のスピードを向上させる方法のヒントやヒントを与えることができることを願っていました。
ありがとうございます。
もちろん、このアイデアは多くのメモリを使用しているので、より少ないメモリを使用してより少ない時間で使用できる典型的な例です。それでも、これはOPに答えますので、+1してください! –