Python
に動的プログラミングアルゴリズムを書いていますが、小さな入力に対しては完全に機能しているようですが、再帰呼び出しのために大きな入力に対してはタイムアウトします。私はこのarticleをオンラインで読んでいます。これはほとんどの現代のプログラミング言語が再帰をうまく扱いませんし、反復的な方法に変換する方が良い考えです。反復的な方法を反復的に変換することでスピードアップ
次のように私のアルゴリズムは次のとおりです。
def get_val(x,y,g,i,xlast,ylast):
# checks if array over
if(i>(len(x)-1)):
return 0
# else returns the max of the two values
# dist returns the euclidian distance between the two points
# the max condition just decides if it's profitable to move to the
# next x and y coordinate or if it would be better to skip this particular (x, y)
return max(g[i]-dist(x[i],y[i],xlast,ylast) + get_val(x,y,g,i+1,x[i],y[i]),get_val(x,y,g,i+1,xlast,ylast))
私はその性能を改善しようとしているが、私は、私はそれが大きな入力にタイムアウトしないことを保証するために必要な手順については本当にわからないんだけど。
を解決するためにされている問題の種類を伝える方法についてのガイドを見つけるあなたは、入力と期待される出力を提供することができ、小さな例 – Stack
のような関数が*何をするのか*? –
私はいくつかの詳細情報を追加する質問を更新しました – anonn023432