令和3年製の500円硬貨を入手してしばらく経つが、結構手元に入るようになってきたと思う。



そこで、数学の問題を作ってみたので、紹介します。

1円硬貨 1.00g
5円硬貨 3.75g
10円硬貨 4.50g
50円硬貨 4.00g
100円硬貨 4.80g
旧500円硬貨 7.00g
新500円硬貨 7.10g


問題
各硬貨の重量は上記表の通りで、これらの硬貨を十分に持っているとします。
これを踏まえて、以下の問に答えよ。

問1
新500円硬貨が発行される以前において、これらの硬貨を使って表せない0.05g単位の最大の重量を求めよ。

問2
新500円硬貨が発行された以降において、これらの硬貨を使って表せない0.05g単位の最大の重量を求めよ。


シンキングタ~イム


1円硬貨が丁度1.00gなことから、0.05g単位の1.00gの連続した空間を、1円硬貨抜きに作ってみるところから始める。

なお、4.00gの50円硬貨、7.00gの500円硬貨は、1円硬貨を使うことで表せるので、考えなくてよい。
つまり、5円硬貨、10円硬貨、100円硬貨だけを考えれば良い。
また、5円硬貨は2枚で7.50gで10円硬貨を1枚加えれば端数は消え、更に10円硬貨も2枚で端数が消えるので、多くても1枚で良く、残りの重量の調整は100円硬貨を0枚から4枚までで調整すれば良いこととなる。

 

つまり、この組み合わせで最も重いのは、5円硬貨1枚、10円硬貨1枚、100円硬貨4枚であり、
3.75✕1+4.50✕1+4.80✕4=27.45
と求まり、それ以上はすべて表せるので、27.45gから1.00gを減らした26.45gが答えとなる。

検算してみると、

3.75✕1+4.50✕1+4.80✕4=27.45g +1.00✕ 0=27.45g
3.75✕0+4.50✕1+4.80✕0= 4.50g +1.00✕23=27.50g
3.75✕1+4.50✕0+4.80✕1= 8.55g +1.00✕19=27.55g
3.75✕0+4.50✕0+4.80✕2= 9.60g +1.00✕18=27.60g
3.75✕1+4.50✕1+4.80✕3=22.65g +1.00✕ 5=27.65g
3.75✕0+4.50✕1+4.80✕4=23.70g +1.00✕ 4=27.70g
3.75✕1+4.50✕0+4.80✕0= 3.75g +1.00✕24=27.75g
3.75✕0+4.50✕0+4.80✕1= 4.80g +1.00✕23=27.80g
3.75✕1+4.50✕1+4.80✕2=17.85g +1.00✕10=27.85g
3.75✕0+4.50✕1+4.80✕3=18.90g +1.00✕ 9=27.90g
3.75✕1+4.50✕0+4.80✕4=22.95g +1.00✕ 5=27.95g
3.75✕0+4.50✕0+4.80✕0= 0.00g +1.00✕28=28.00g
3.75✕1+4.50✕1+4.80✕1=13.05g +1.00✕15=28.05g
3.75✕0+4.50✕1+4.80✕2=14.10g +1.00✕14=28.10g
3.75✕1+4.50✕0+4.80✕3=18.15g +1.00✕10=28.15g
3.75✕0+4.50✕0+4.80✕4=19.20g +1.00✕ 9=28.20g
3.75✕1+4.50✕1+4.80✕0= 8.25g +1.00✕20=28.25g
3.75✕0+4.50✕1+4.80✕1= 9.30g +1.00✕19=28.30g
3.75✕1+4.50✕0+4.80✕2=13.35g +1.00✕15=28.35g
3.75✕0+4.50✕0+4.80✕3=14.40g +1.00✕14=28.40g


のように、2✕2✕5=20組が出来、一番重いのが27.45gであり、他は1.00gの1円硬貨を必要枚数追加することで、27.45以上の重量への調整が可能である。

答え 26.45g


問1を踏まえて、新たな硬貨である新500円硬貨の7.10gによって、何が変化するのでしょうか。
考えなければ行けないことが増えてしまうということでしょうか。

問1の26.45g以下にならなければ意味がありません。
もし、7.10gの500円硬貨が4枚使ったとすると、
7.10✕4=28.40gとなり、オーバーしますので、28.45g以下に対しては、多くても3枚までだということが解ります。

新500円硬貨の7.10g、100円硬貨の4.80gを使った関係性を考える。

7.10✕1+4.80✕0= 7.10
7.10✕2+4.80✕0=14.20
7.10✕3+4.80✕0=21.30
7.10✕4+4.80✕0=28.40
7.10✕0+4.80✕1= 4.80
7.10✕1+4.80✕1=11.90
7.10✕2+4.80✕1=19.00
7.10✕3+4.80✕1=21.10
7.10✕0+4.80✕2= 9.60
7.10✕1+4.80✕2=16.70
7.10✕2+4.80✕2=23.80
7.10✕3+4.80✕2=30.90 28.40gオーバー
7.10✕0+4.80✕3=14.40
7.10✕1+4.80✕3=21.50
7.10✕2+4.80✕3=28.60 28.40gオーバー


小数点以下が同じものは、より少ない方を採用する。

7.10✕0+4.80✕0= 0.00
7.10✕1+4.80✕0= 7.10
7.10✕2+4.80✕0=14.20
7.10✕3+4.80✕0=21.30
7.10✕0+4.80✕3=14.40
7.10✕1+4.80✕3=21.50
7.10✕0+4.80✕2= 9.60
7.10✕1+4.80✕2=16.70
7.10✕0+4.80✕1= 4.80
7.10✕1+4.80✕1=11.90


この結果に対して、10円硬貨を多くて1枚追加するのだが、小さい順にソートした小さい方からの5つだけに10円硬貨を1枚、4.50gを加えると、

7.10✕0+4.80✕0+4.50✕0= 0.00
7.10✕0+4.80✕1+4.50✕0= 4.80
7.10✕1+4.80✕0+4.50✕0= 7.10
7.10✕0+4.80✕2+4.50✕0= 9.60
7.10✕1+4.80✕1+4.50✕0=11.90
7.10✕2+4.80✕0+4.50✕0=14.20
7.10✕0+4.80✕3+4.50✕0=14.40
7.10✕1+4.80✕2+4.50✕0=16.70
7.10✕3+4.80✕0+4.50✕0=21.30
7.10✕1+4.80✕3+4.50✕0=21.50
7.10✕0+4.80✕0+4.50✕1= 4.50
7.10✕0+4.80✕1+4.50✕1= 9.30
7.10✕1+4.80✕0+4.50✕1=11.60
7.10✕0+4.80✕2+4.50✕1=14.10
7.10✕1+4.80✕1+4.50✕1=16.40


小数点以下が同じものは、より少ない方を採用して、小数点以下に着目してソートすると、

7.10✕0+4.80✕0+4.50✕0= 0.00
7.10✕1+4.80✕0+4.50✕0= 7.10
7.10✕2+4.80✕0+4.50✕0=14.20
7.10✕0+4.80✕1+4.50✕1= 9.30
7.10✕0+4.80✕3+4.50✕0=14.40
7.10✕0+4.80✕0+4.50✕1= 4.50
7.10✕0+4.80✕2+4.50✕0= 9.60
7.10✕1+4.80✕2+4.50✕0=16.70
7.10✕0+4.80✕1+4.50✕0= 4.80
7.10✕1+4.80✕1+4.50✕0=11.90


この中で最大は16.70gであることが解る。

更に0.05g単位を考えると、5円硬貨の3.75gを1枚加えたものとなり、
16.70+3.75=20.45
となり、ここから1.00gを引いた
20.45-1.00=19.45
が表すことが出来ない最大の重量となる。

答え 19.45g


今回は机上で導きましたが、プログラミングで解くことも考えると、どうやるのが一番なのだろうか。
総当りでやると、大変なので、別の方法を考える必要があるが、それはまた別の記事で書いていこうかと思う。

それにしても、チキンマックナゲットの定理を使うかと思えば、使えずに終わってしまった。
というか、そもそも使えるのかが疑問でもある。


ではでは