アルゴリズムコースの古いメモをいくつか確認していますが、動的計画法の問題は少し注意が必要です。いくつかの金種x1、x2、... xnのコインが無制限に供給され、ある値Xを変更したいという問題があります。動的プログラムを設計して、Xの変更が可能かどうかを判断しようとしています。作られるかどうか(コインの数を最小化しない、またはどのコインを返すか、正誤問題)。
私はこの問題についていくつか考えました、そしてそれが次のようなものであるところでこれを行う再帰的な方法を見ることができます...
MakeChange(X, x[1..n this is the coins])
for (int i = 1; i < n; i++)
{
if ( (X - x[i] ==0) || MakeChange(X - x[i]) )
return true;
}
return false;
これを動的プログラムに変換することは、私にはそれほど簡単ではありません。どうすればこれにアプローチできますか?