アルゴリズムと計算量の問題
円、 円、 円の硬貨がそれぞれ十分な枚数あるとする。正の整数 に対し、 円をちょうど支払う硬貨の組み合わせのうち枚数が最小のものの枚数を とする。また、次の貪欲法で 円を支払ったときの枚数を とする。
貪欲法:残りの金額が になるまで、残りの金額以下で額面が最大の硬貨を 枚使う。
を満たす整数 のうち、 となるものの個数を求めよ。
この問題で使うもの
- 貪欲法が最適でない場合の判定(説明と入口の問題)
- 動的計画法の基本(硬貨の最小枚数)(説明と入口の問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
と分けて、 を と で表し、 ごとに貪欲法より少ない枚数で払えるかを調べる。
ヒント 2
円 枚は 円で、 円 枚と 円 枚(合計 枚)を 枚で置きかえられる。最適性の確認には「 円と 円を 枚、うち 円が 枚なら金額は 」を使う。
ヒント 3
かつ なら、 円を 枚減らして 円 枚を使うと 枚少なくなる。それ以外の では、枚数の下界と の値の整数性から貪欲法が最小になることを確かめる。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
(, は整数)と書く。貪欲法はまず 円を 枚使い、残り 円を なら 円 枚と 円 枚で、 なら 円 枚で払う。よって
最小枚数の下界. 硬貨は 枚あたり高々 円なので、枚数は 以上である。また 円と 円だけを 枚使い、そのうち 円が 枚なら金額は である。
かつ の場合. 円を 枚、 円を 枚、 円を 枚使うと で、枚数は 。 より小さいので 。
の場合(). 円は使えない。 なら 円だけで 枚しかなく貪欲法と一致し、 なら 円を 枚使うのが最小で、これも貪欲法と一致する。
残りの ()で貪欲法が最適であること.
- : で下界と一致。
- : で下界と一致。
- :。 枚で払えるとすると、 枚の合計は 以下で、 円を 枚でも含むと合計は 以下になるので、すべて 円か 円。 より となり不可能。よって 。
- :。同様に 枚なら で不可能。。
- :。 枚なら で不可能。 枚なら、 円を 枚以上含むと合計は 以下で不足するので、 円は 枚か 枚。 枚なら より 、 枚なら より で、どちらも不可能。。
- :。 枚なら で不可能。 枚なら 円は 枚か 枚で、 または となり不可能。。
以上より、 となるのは かつ のときに限る。 では の各 について 個ずつ()あり、 は で該当しない。よって求める個数は
別解
()とおく。
貪欲法: 枚の 円のあと、余り を 円と 円で支払う。 に対する枚数は 。よって 。
最適解: 、 を順に計算すると
、、、……となり、 では 、()であることが確かめられる(例: は を使い 枚の 円と合わせて 枚、 は を使い 枚、 は を使い 枚)。
では 円が使えないので 。
では で、 のとき 、それ以外は 。したがって となるのは かつ のとき。
では の各 で の 個ずつ、すなわち の 個( は で等しい)。
検算: は貪欲法で の 枚、最適は の 枚で 。 は で両方 枚。
答え: