第374問の解答
問題[場合の数]
1g、4g、16g、64g、256gの重りがそれぞれ2個ずつあります。
これらのおもりを使って、「天秤の片側にだけ重りを乗せる」方法で重さを測ることにします。すると、例えば6gの重さは1gの重りを2個と4gの重りを1個使えば測ることができますが、7gの重さは測ることができません。
では、これらの重りを使って「天秤の片側にだけおもりを乗せる」方法で測れる重さのうち、289gは小さいほうから何番目の重さでしょうか?
解答例1
トトロ@Nさん、たみてんさん、長野 美光さん、DrKさん、CRYING DOLPHINさん、あ〜く@旧Nさん、敬@Nさん、ちこりんさん、有無相生さん、小学名探偵さん、Taroさん、 他
4進数および3進数の問題に帰着できます。
各おもりは、1=40、4g=41、16=42、64=43、256=44と4のべき乗になっています。
従って、ある重さ(ngとします)の量り方は、nを4進数で表して、各桁の数字だけのおもりを使うと良いことになります。
たとえば、6gは6(10進数)=12(4進数)なので、4gのおもり1個と1gのおもり2個で量れます。
同様に、289(10進数)=10201(4進数)なので256gのおもり1個と16gのおもり2個、および1gのおもり1個とで量ることができます。
さて、量れる重さ(mgとします)とおもりの個数を順に見ていくと、おもりの個数はmを3進数で表したものに対応していることが分かります。
従って、10201(3進数)を10進数に変換すると100になるので、289gは小さい方から100番目ということになります。
なお、10進数を4進数に変換するのは、4で割った商と余りを順番に計算したときに得られるあまりの数が各桁の数字となります。また、3進数を10進数に変換するには、3のべき乗の値に各桁の数字を掛けたものを合計することで得られます。
答: 100番目
以上
(その他の解法)
- 地道に数え上げる ・・・ YBさん、辻。さん、あさみさとしさん、K/Aさん、大岡 敏幸さん、他
- プログラミングで数え上げる ・・・ Miki Sugimotoさん、kasamaさん、 他