C/C++の宿題を片付けます 86代目
■ このスレッドは過去ログ倉庫に格納されています
0535デフォルトの名無しさん
2007/05/03(木) 17:38:28総当たりみたいなもんになるが、こんな感じ
脳内シミュレートではうまく動くはずだが、計算量がかなりでかくなる
もっともxを選ぶ際にでかいものから選ぶ等して、分枝限定法を使えば多少は削減できるだろうがな
1) コインの集合をZ、目標金額をYとする
2) あるx(∈Z)を選んだと仮定
2.1) Y-x<0であれば3)に
2.2) Y-x>0であれば、目標金額をY-xとして再帰呼び出しし、その結果+1を枚数とする
2.3) Y-x=0であれば枚数を1として返す
3) Z=Z-{x}とし、2)に戻ってZ=φとなるまで繰り返す
4) 最小の枚数となっている物を↑の結果から選ぶ
■ このスレッドは過去ログ倉庫に格納されています