アルゴリズムと計算量の問題
円、 円、 円の硬貨がそれぞれ十分な枚数あるとする。 以上の整数 に対し、 円をちょうど支払うときの硬貨の枚数の最小値を とする( とする)。 のとき、 は次の漸化式を満たす。
この漸化式を用いて の表を順に埋め、 を求めよ。
この問題で使うもの
- 動的計画法の基本(硬貨の最小枚数)(説明と入口の問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
動的計画法を使う。 から始めて、 と小さい金額から順に表を埋めていこう。
ヒント 2
は 、、 のうち(引く値が 以下のものについて)最小の値である。
ヒント 3
から までは となる。続けて を求め、最後に を計算しよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
動的計画法では、小さい金額から順に の値を表に書き込んでいく。 円を払うとき、最後に使う硬貨を 円(、ただし )とすると、残りの 円は最小 枚で払えるので、全体の枚数は 枚になる。そのうち最小のものが である。
から始めて計算する。
-
-
-
-
-
-
-
-
-
-
-
-
表にまとめると次のとおり。
よって である(実際、 で 枚)。なお、大きい硬貨から使う方法では の 枚となり、最小にならない。
別解
漸化式で順に計算する。
検算:12 = 4+4+4 の 3 枚で支払える。2 枚では、可能な和は 2,5,6,8,9,10 のみで 12 にならないので、最小は 3 枚。よって 。