アルゴリズムと計算量の問題
円、 円、 円の硬貨がそれぞれ十分な枚数あるとする。正の整数 に対し、 円をちょうど支払う硬貨の組み合わせのうち、枚数が最小のものの枚数を とする。また、「残りの金額を超えない硬貨のうち最も額の大きいものを 枚使う」ことを残りが 円になるまでくり返す貪欲法で 円を支払ったときの硬貨の枚数を とする。 を満たす整数 のうち、 となるものをすべて求めよ。
この問題で使うもの
- 貪欲法が最適でない場合の判定(説明と入口の問題)
この問題を解けるようになるまで(2 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
各 について、貪欲法の枚数 と、動的計画法で求めた最小枚数 を表にして比べよう。
ヒント 2
、 で から順に求める。貪欲法は 円 → 円 → 円の順にできるだけ使う。
ヒント 3
は で と一致する。 では となり、貪欲法の と比べてみよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
方針: について、貪欲法の枚数 と動的計画法で求めた最小枚数 を表にして比べる。
1. 貪欲法の枚数
できるだけ 円を使い、残りにできるだけ 円を使い、最後に 円を使う。
- : 円だけなので
- : で
- : で
- : で
- : で
- : で
- : で
- : で
- : で
- : で
2. 動的計画法による
最後に使う硬貨が 円・ 円・ 円のいずれかであることから、 とし、
( となる項は除く)で順に表を埋める。
- 、、
-
-
-
-
-
-
-
-
-
3. 比較
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 1 | 1 | 2 | 3 | 4 | 2 | 2 | 3 | 4 | |
| 1 | 2 | 3 | 1 | 1 | 2 | 3 | 2 | 2 | 2 | 3 | 3 |
となるのは (貪欲法は の 枚、最適は の 枚)と (貪欲法は の 枚、最適は の 枚)である。
よって求める は 。
別解
動的計画法で を求める。、(引く数が負にならない範囲)。
は順に 。
貪欲法の枚数 :
- : 枚
- : で 枚
- : で 枚
- : で 枚
- : で 枚
- : で 枚(最適は の 枚)
- : で 枚
- : で 枚
- : で 枚
- : で 枚(最適は の 枚)
となるのは である。
検算: は 枚、 は 枚で、貪欲法の枚数より少ない。他の では が確かめられた。