アルゴリズムと計算量の問題
円、 円、 円の硬貨がそれぞれ十分な枚数あるとする。正の整数 に対し、 円をちょうど支払う硬貨の組み合わせのうち、枚数が最小のものの枚数を とする。
また、次の貪欲法で 円を支払ったときの硬貨の枚数を とする。
(貪欲法)残りの金額が になるまで、残りの金額以下の硬貨のうち最も額面の大きいものを 枚使う、という操作をくり返す。
を満たす整数 のうち、 となる をすべて求めよ。
この問題で使うもの
- 貪欲法が最適でない場合の判定(説明と入口の問題)
この問題を解けるようになるまで(2 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
貪欲法の枚数 と、動的計画法で求めた最小枚数 を から まで表にして比べましょう。
ヒント 2
、 で表を埋めます。貪欲法は 円を使えるだけ使い、次に 円、最後に 円を使います。
ヒント 3
では貪欲法は で 枚ですが、 です。残りの も同様に比べましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
方針:動的計画法で最小枚数 の表を作り、貪欲法の枚数 と並べて比べる。
手順 1: を動的計画法で求める。
とする。 のとき、最後に使う硬貨 (ただし )で場合分けすると、残り 円は最小枚数で払えばよいので
が成り立つ。これで順に表を埋める。
- ( 円硬貨のみ使える)
-
-
-
-
-
-
-
-
-
手順 2: を求める。
大きい硬貨から使えるだけ使う。
- : 円だけで
- : で 、: で
- : で 、: で
- : で
- : で
- : で
- : で
- : で
手順 3:比べる。
と では である。
一方、
- :(最適は )
- :(最適は )
よって求める は である。
別解
硬貨 について、各 の と を順に求める。
- : ,
- : ,
- : ,
- : ,
- : (),
- : ,
- : (),
- : ()。貪欲法は で 。よって 。
- : ()。貪欲法は で 。よって 。
- : (),
- : (),
- : (),
は、 で 枚以下の組が作れないことなども確かめた。たとえば は、 枚の和が になる硬貨の組が存在しない。
したがって となるのは である。