ワンコインランチ問題
こんなツイートを見たんですよ。
ワンコインランチをやってる店に入ったら、会計の時に、「540円です」と言われたので、「あっ、税別なんですか?」と思わず聞いたら、「500円玉と50円玉でお支払い頂くと、お釣りは10円玉でお返ししますので、2枚引く1枚で、ワンコインになります」と返された。一休さんみたいな店だった。
— ちまき (@chi_maki) April 18, 2017
Q ワンコインランチの上限を求めよ。
A 941円 https://t.co/g62J87ojfY— 橋本幸士 Koji Hashimoto (@hashimotostring) April 19, 2017
950円(500円玉1枚、100円玉4枚、50円玉1枚で計6枚)を払うと9円(5円玉1枚、1円玉4枚で計5枚)のおつりになって、差し引き941円。たしかにワンコインになります。
が、これは上限なのでしょうか。案の定ツッコミが。
@hashimotostring 「500 円玉を 10 万枚出して、1 円玉を 10 万 -1 枚返す」みたいなのを除くための条件がいりますよね。
— Hal Tasaki (@Hal_Tasaki) April 19, 2017
ということで、ちと条件を考えてみました。
まず、ワンコインなので
- 支払に紙幣は使わない。
- 支払った硬貨の枚数-おつりの硬貨の枚数=1
という条件は必要ですね。あとは
- 支払およびおつりは、使う紙幣または硬貨の数が最小になるように行なわれる。
という条件が必要になります。紙幣を使わないのに「使う紙幣または硬貨の数が最小に」と書いているのは、硬貨の数を最小にするだけなら、例えば500円玉2枚がOKになってしまうからです。
以上の条件設定の下では、941円が上限となります。
上限を求めるためには、「支払金額をなるべく大きく」「おつりの額をなるべく小さく」することが必要になります。また、支払った硬貨の種類とおつりの硬貨の種類はすべて異なります(そうでないとすると、単に支払った硬貨を返しているだけになる)。札を使わない前提で使える硬貨の上限は999円(500円玉1枚、100円玉4枚、50円玉1枚、10円玉4枚、5円玉1枚、1円玉4枚)であり、このとき硬貨は全部で15枚になります。ワンコインにするためにはこれを8枚と7枚に分け、8枚支払い、7枚おつりをもらうことになります。「支払金額をなるべく大きく」「おつりの額をなるべく小さく」なので、支払額は額面の大きい方から8枚の硬貨(500円玉1枚、100円玉4枚、50円玉1枚、10円玉2枚で970円)、おつりは額面の小さい方から7枚の硬貨(1円玉4枚、5円玉1枚、10円玉2枚で29円)。差し引き941円となります。10円玉2枚は支払とおつりとで相殺するので、結果的に無視されることになりますが。
さて、ここで条件を変えて
- 支払およびおつりは、使う硬貨の数が最小になるように行なわれる。
としたらどうなるでしょうか。
この場合、上に書いたとおり、1000円を500円玉2枚で支払うことが可能になります。したがって「支払金額をなるべく大きく」するということは、「すべて500円玉で支払う」ということになります。一方、そのときにはおつりに500円玉は使えませんから、おつりの上限は499円。そのときの硬貨の枚数は14枚(100円玉4枚、50円玉1枚、10円玉4枚、5円玉1枚、1円玉4枚)ですから、ワンコインにするためには15枚の硬貨を支払うことになります。つまり500円×15枚で7,500円の支払い。おつりが499円なので、この場合の上限額は7,001円ということになります。7,001円のワンコインランチ…
荒唐無稽ついでに、対象とする硬貨を「日本円ベースのあらゆる硬貨」としてみたらどうかるのかを考えてみました。Wikipediaの「日本の記念貨幣」には、記念貨幣の額面には以下のものが記載されています。
- 100円
- 500円
- 1000円
- 5000円
- 1万円
- 5万円
- 10万円
さああとは先ほどと同じ理屈で「支払金額をなるべく大きく」「おつりの額をなるべく小さく」してみると、答えは2,500,001円となりました(支払:10万円硬貨26枚、おつり:99,999円)。
数学ガチ勢はすぐに本気を出す('ε'*)
— 遊撃部長F/S&RWAs (@fstora) April 19, 2017
うるさいわ(笑)
最近のコメント