2つの値を入力として受け取り、2つ目の関数を介して2つの値の「組み合わせ」を返す関数があります(簡略化のため、f2
は入力値の合計を返します)。 Pythonでそれは:今、in1
とin2
は時間ポイントに関連付けられているマルチプル入力値による再帰
f1 (in1, in2):
return f2(in1,in2)
f2 (in1, in2):
return in1 + in2
。 in1
は、0
,1
および2
の3つの値をとることができます。 私がしたいのは、n=4
の時点を "先読み"し、最も高い戻り値を与えるin1
値の最良のシーケンスを特定することです。 はそれでは、最初にin2
を言わせて、私が行うために必要なもの10で評価される:
a = f1(0, 10)
b = f1(1, 10)
c = f1(2, 10)
その後、私はIN1の可能な値でそれを評価する必要が取得したすべての結果のために:
a0 = f1(0, a); a1 = f1(1, a); a2 = f1(2, a)
b0 = f1(0, b); b1 = f1(1, b); b2 = f1(2, b)
c0 = f1(0, c); c1 = f1(1, c); c2 = f1(2, c)
したがって、n回の繰り返しの後に停止し、入力の最適なシーケンスを特定します(この例では2 2 2 2
になるため、10+12+14+16
が最大値です)。 このインスタンスで再帰(深さ優先検索)を使用できますか?それをコード化する最良の方法は何ですか?ブルートフォースのアプローチは、ループのために4を入れ子にすることですが、どうすればn = 10
?
残念ながら、私は関数の数学的性質についての手掛かりはありません。 –