私はPythonの初心者ですが、奇妙な範囲外のエラーが発生しています。
アイデアは、以下を使用して初期化されたキャッシュが必要であるということです。
arr = [0]*1000000
次に、を呼び出すことによって同じ関数でアクセスします
def func (i) :
k=1
a = i
arr = [0]*1000000
while (i>1):
if arr[i] != 0:
k = k + arr[i] - 1
break
if i%2 == 0:
i = i/2
else:
i = 3*i + 1
k += 1
arr[a] = k
return k
値iが1500を超えると、範囲外のエラーが発生します。ただし、キャッシュは100万intに初期化されることになっています。私は何かが足りないのですか?ありがとう