私はPythonで単純な再帰階乗関数を作成しました。現在、私のコンピュータは階乗を10000まで計算することができます。それよりも高い値の場合、python.exeは動作を停止します。重いPythonスクリプトの扱い
これは私が大きな階乗を処理したいのであれば、私はこれを行うことができる方法は何か(複数のコアを使用するなど)ですか?それともPythonの限界ですか?私はPythonスクリプトのためにGPUを使ってチェックアウトしましたが、この方法は複雑で複雑なものになります。
再帰の制限を100000に設定しているため、問題ではありません。
これは私のコードです:
import sys, time
sys.setrecursionlimit(100000)
def f(n):
if n==0:
return 1
else:
return n*f1(n-1)
は、私はあなたがあなたの階乗に末尾再帰を使用しない場合、スタックはなりますが、主な問題は、コールスタックであることを考えるあなたの助け
私たちのコードを表示 – depperm
*私は10000000に再帰制限を設定しているので、問題ではないはずです*。すべてのそれらの再帰呼び出しフレームがすべてメモリを取ることを除いて。 Pythonは再帰呼び出しを最適化しません。 –
なぜあなたはそれをしますか?現在複数のコアを使用しているメモリ全体を使用している場合は、何も変更されません – Hearner