ダイナミック プログラミングは、特定の問題を多数の単純なサブ問題に分割することで解決する最適化アルゴリズム手法です。このプロセスを通じて、完全な検索からの品質、条件、または事実を組み合わせて、正確かつ正確な貪欲アルゴリズムを取得できます。しかし、このアプローチ自体は矛盾しています。なぜなら、このアプローチには大きな利点がある一方で、最大の欠点と制限でもあるからです。問題をサブ問題に分割することはできますが、サブ問題に分割することはできません。彼らは自ら決心すべきだ。部分問題の概念は本質的に高度に最適化されているため、より重要な問題を解決するために使用できます。
Coins は、合計金額を表す整数の合計を表す配列のコンポーネントです。その過程で、合計のバランスをとるためにいくつかのコインを返却する必要があります。構築されていない場合は、-1 を返します。
コインを両替するには 2 つの解決策があります -
再帰 - シンプルで遅い方法。
ダイナミック プログラミング - タイムリーで効率的な方法
コンピューターサイエンスにおけるコインの応用 -
は変更を配布するために使用されます。
これは、隣接する行のコインの価値を徐々に増やすプロセスです。
ステップ 1 - 開始
ステップ 2 - 長さ n 1
ステップ 3 - 一方向処理のために動的 prog[0] を 1 に設定します
ステップ 4 - 値を反復処理する
ステップ 5 - Dynamicprog[index-coins[i]] の値を Dynamicprog[index]
ステップ 6 - 1 から n
ステップ 7 -値を返す
ステップ 8 - 終了
C 環境で使用できるコイン変更構文は次のとおりです。この構文を適用することで、このコインを完全に理解するためのコードを構築します。
方法 1 - コインの最大数を見つけるための再帰的 C プログラム
方法2-隣接する行および列のコインが収集できない場合にコインの価値を最大化する
このコードでは、動的プログラミングを適用します。ロジックは、arr[i][j 1] および arr[i][j – 1] です。
以上が隣接する行と列で収集できないコインの価値を最大化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。