財布の小銭を最小限にする支払い方法
「財布の小銭を最小限にする支払い方法」を考えてみましょう。
例えば、会計が1,587円だとします。
そして手持ちのお金が以下の通りだとします。
4
4
1
2
このとき、おそらく大抵の人は
- 2,002円
- 2,000円
のどちらかの金額で支払うと思うのですが、実は正解は2,142円になります。
なぜそうなる!?
と思いますよね。
では実際に計算してみましょう。
2,002円出した場合は
2,002円 - 1,587円 = 415円
となるので
- 支払った枚数:2枚
- 返ってきた枚数:6枚
では、2,142円を出した場合はどうでしょう?
2,142円出した場合は
2,142円 - 1,587円 = 555円
となるので
- 支払った枚数:7枚
- 返ってきた枚数:3枚
少なくするための理屈
例えば、先ほどの例で言うと、以下の手順で支払うことで最小化できます。
- まず、1の位を見る。
- この場合は7円なので、7円があれば出す。
- 7円を払えない場合は、2円があれば出す。
- 次に、10の位を見る。
- 前のステップで7円を払えた場合は、そのままⅡ.へ進む。2円だけしか払えなかったり1円も払えなかった場合は、a.に進む。
- ここから先は+10円で考える。つまり90円払うものとして考える。
- 払うべき金額は90円なので、90円があれば出す。
- 90円を払えない場合は、次に40円があれば出す。
- Ⅱ.とⅢ.は飛ばす。
- 払うべき金額は80円なので、80円があれば出す。
- 80円を払えない場合は、次に30円があれば出す。
- 前のステップで7円を払えた場合は、そのままⅡ.へ進む。2円だけしか払えなかったり1円も払えなかった場合は、a.に進む。
- 次に、100の位を見る。(10の位でやったことと同じことをする)
- 次に、1000の位を見る。(10の位でやったことと同じことをする)
例えば、1,587円を例にすると、
まず1の位を見ます。1の位は「7円」なので
- 2円
- 5円
のどちらかを出せるか確認します。
この場合は、2円しか出せないので2円を出します。
次に10の位を見ます。10の位は「80円」ですが、1の位で2円しか払えなかったので、ここからは+10円払うものとして考えていきます。
なので「90円」を払わないといけないので
- 40円
- 90円
のどちらかを出せるか確認します。
この場合は、40円しか出せないので40円を出します。
次に100の位を見ます。
100の位は「500円」ですが、10の位で40円しか払えなかったので、ここからは+100円払うものとして考えていきます。
なので「600円」を払わないといけないので
- 100円
- 600円
のどちらかを出せるか確認します。
この場合は、100円しか出せないので100円を出します。
最後に1000の位を見ます。1000の位は「1,000円」ですが、100の位で100円しか払えなかったので、ここからは+1000円払うものとして考えていきます。
なので「2,000円」を払わないといけないので、2,000円を出します。
このように1の位から順番に考えていくだけで、小銭が最小になるように支払えます。