【思ったこと】 151208(火)刑事コロンボ「殺しの序曲」の偽金貨クイズとその拡張(5)
前回の日記では、袋が全部で5つ、金貨Bの袋がそのうちいくつあるか分からないという具体例について検討した。その結果、【計量1】の4倍の重さと【計量2】の結果の差をを比較した時に【計量2】のほうが12グラムだけ重かったとすると、【計量3】において金貨Bが含まれていることによる「増量分」は、あらゆる可能性にたいして異なる値を示すため、【計量3】の結果から、金貨Bの入っている袋がいくつであるか、どの袋に入っているのかを同定することが可能であることが分かった。
しかし、袋が5つ、【計量1】と【計量2】の差が12グラムであったという例示において成り立っているにすぎないかもしれない。そこで次のように一般化を試みる。まず、【計量1】と【計量2】の差をsグラムであるとすると、昨日の計算は以下のように書き換えることができる。
- 袋1から袋4のうち、1つの袋に金貨Bが含まれていた場合
- この場合は、【計量1】の4倍と【計量2】の差sグラムは、金貨Aと金貨Bの1枚分の差となる。
- 金貨Bが袋1、袋2、袋3、袋4に入っていた時の【計量3】の増量分は、順に、s、2s、4s、8sグラムとなる。
- 袋1から袋4のうち、2つの袋に金貨Bが含まれていた場合
- この場合、金貨Aと金貨Bの1枚分の差はs/2グラムとなる。金貨Bが入っている袋の場合分けは
- 袋1と袋2(計3枚):3s/2グラム
- 袋1と袋3(計5枚):5s/2グラム
- 袋1と袋4(計9枚):9s/2グラム
- 袋2と袋3(計6枚):6s/2=3sグラム
- 袋2と袋4(計10枚):10s/2=5sグラム
- 袋3と袋4(計12枚):12S/2=6sグラム
- 袋1から袋4のうち、3つの袋に金貨Bが含まれていた場合
- この場合、金貨Aと金貨Bの1枚分の差はs/3グラムとなる。金貨Bが入っている袋の場合分けは、
- 袋1、袋2、袋3(計7枚):7s/3グラム
- 袋1、袋2、袋4(計11枚):11s/3グラム
- 袋1、袋3、袋4(計13枚):13s/3グラム
- 袋2、袋3、袋4(計14枚):14s/3グラム
- 袋1から袋4のうち、4つの袋に金貨Bが含まれていた場合
- この場合、金貨Aと金貨Bの1枚分の差はs/4グラムとなる。
- 金貨Bは袋1〜袋4のすべてに入っており、増量分はs/4×15枚=15s/4グラム
ということで、【計量3】の増量分は、
- 金貨Bが1つの袋に入っていた時:s、2s、4s、8s
- 金貨Bが2つの袋に入っていた時:3s/2、5s/2、6s/2、9s/2、10s/2、12s/2
- 金貨Bが3つの袋に入っていた時:7s/3、11s/3
- 金貨Bが4つの袋に入っていた時:15s/4
となる。上記では分数が入っていてややこしいのでs=12tとおくと、
- 金貨Bが1つの袋に入っていた時:12t、24t、48t、96t
- 金貨Bが2つの袋に入っていた時:18t、30t、36t、54t、60t、72t
- 金貨Bが3つの袋に入っていた時:28t、44t
- 金貨Bが4つの袋に入っていた時:45t
となって、やはり異なる値をとる。よって、当初の例示で「【計量1】と【計量2】の差を12グラムとしていたが、何グラムであっても金貨Bの袋を見つけ出せることが分かった。
では、袋がどんなに多くても、どの袋に入っているかというすべての組合せに対して、【計量3】の増量分は異なる値をとりうるのだろうか。
まず、もういちど袋の数が袋0〜袋4までの5個であった場合について、【計量3】で金貨Bが含まれている個数を二進法で表してみる。但し、表記を簡略化して、(1010)2の場合は(1010)というように、下付の2は省略する。
- 袋1から袋4のうち、1つの袋に金貨Bが含まれていた場合その個数は
(0001)、(0100)、(0001)というように、どこかに一箇所「1」が現れる個数分となる。よって金貨Bが含まれていたことによる増量分は、
s×(0001)、s×(0010)、s×(0100)、s×(1000)
と表すことができる。上記の二進数列には1は必ず1個含まれている。
- 次に、袋1から袋4のうち、2つの袋に金貨Bが含まれていた場合の個数は
(0011)、(0110)、(1001)というように、どこかに2箇所「1」が現れる個数分となる。よって金貨Bが含まれてたことによる増量分は、いっぽう金貨Aと金貨Bの1枚分の差はs/2となる。また二進法で2で割るというのは小数点を左に1つ移動する計算となるので、
- 袋1と袋2:s/2×(0011枚)=s×(001.1)
- 袋1と袋3:s/2×(0101枚)=s×(010.1)
- 袋1と袋4:s/2×(1001枚)=s×(100.1)
- 袋2と袋3:s/2×(0110枚)=s×(011.0)
- 袋2と袋4:s/2×(1010枚)=s×(101.0)
- 袋3と袋4:s/2×(1100枚)=s×(110.0)
となる。上記の二進数列には「1」が必ず2個現れている点に留意。
- さて、袋1から袋4のうち、3つの袋に金貨Bが含まれていた場合であるが、この場合の個数は、(0111)、(1110)、(1011)というように、どこかに3箇所「1」が現れる個数分となる。いっぽう金貨Bが含まれていたことによる増量分は、いっぽう金貨Aと金貨Bの1枚分の差はs/3となる。
また二進法で3で割るというのは小数点を左に1つ移動する計算となるので、
- 袋1、袋2、袋3:s/3×(0111枚)=s×(0111)÷(11)=s×(10.0101...)
- 袋1、袋2、袋4:s/3×(1011枚)=s×(1011)÷(11)=s×(11.1010...)
- 袋1、袋3、袋4:s/3×(1101枚)=s×(1101)÷(11)=s×(100.0101...)
- 袋2、袋3、袋4;s/3×(1110枚)=s×(1110)÷(11)=s×(100.1010...)
となる。
- 最後に、袋1から袋4のうち、4つの袋に金貨Bが含まれていた場合は、金貨Bの枚数は(1111)枚、また金貨Aと金貨Bの1枚分の差はs/4となるので、
s/4×(1111)=s×(11.11)
となる。二進数で表記した増量分の重さは、sに掛け合わせる時の二進数の「1」と「0」のパターンの違いに現れていることが分かる。
以上までを自力で考えたが、どうやら、【計量3】あるいはそれに変わる計測法というのは、金貨Bがどの袋に入っているのかというあらゆる組合せに対応した多項式、あるいはデジタル信号を作ることであろうということに気づいた。
次回に続く(たぶん)。
|