午後のひとときに数学の問題を解いてみる。
問題
ある王様は1000本の高価なワインを所蔵している。
その内の1本に毒が仕込まれていて、その毒のボトルを探し当てるのに囚人を使うことにした。
さて、何人の囚人が必要か。
因みに、毒ワインは1滴で致死量に達し、効果が現れるのに20時間を要するものとする。
マイクロソフトの入社テストとして広まっているものですが、どうなんでしょう。
数学屋の私ですが、コンピュータのエンジニアでもあり、RAIDシステムの講師などもしていたので、ジャンルとして数学だけで収まるのだろうか。
これは、毒が入っている、入っていないの2パターンなので、2進数で考えればよい。
2進数が何桁で1000に達するのかといえば、2^10=1024ですので、10人の囚人ということになります。
ワインボトルに1から1000までナンバリングする。
0000000001(2)=1(10)
0000000010(2)=2(10)
0000000011(2)=3(10)
...
1111101000(2)=1000(10)
ABCDEFGHIJ
(2)は2進数、(10)は10進数という意味です。
これを縦にみて、ABCDEFGHIJの10個のグラスに1が立っているボトルのワインを入れる。
飲んでから20時間後に、どの囚人が死んだのかで、ワインの番号が解る仕組みです。
というのが、おそらく一般的な模範解答なのだろう。
但し、私はこの方法では不十分だと考えるのです。
まず、なんで毒の効果が現れるのが20時間後と設定されているのか。
問題文にはない、なんらかの条件が含まれていた可能性も考えられる。
例えば、20時間という遅効性の毒を使うことに意味があるとするならば、24時間以内に毒のボトルを探し当てなければいけないとかかな?
おそらく1秒で即死ならば、死ぬまで1滴ずつ与え続ければいいという解答が出てしまうからだろうか。
そこで、ワインを1滴ずつグラスに注ぐ作業工程に掛かる時間を考えてみる。
注射器やスポイトで吸い取って、各グラスに垂らしていくのだろうか。
計算がし易いように、仮にワインを1000本ではなく1024本だとすると、10個のグラスには512滴ずつ垂らす必要がある。
厳密に計算するならば、上記の512滴から、1001~1023までの滴数を引きえばよい。
1000以上なので、512+256+128+64+32=992より上なので、上位5ビットはすべて1なので5x23=115。
下位5ビットは、16+15+12+12+12=67。
合計182滴。
512-182=330
後半にフラグが立ってるのが多いので、結構減るものです。
仮に、慎重をきして1滴垂らすのに10秒掛けたとしても、3300秒で1時間掛からないことになる。
単純計算で500滴と計算したら、1滴に10秒だと、50000秒=1時間23分20秒となる。
スポイトなどを用意する時間とか、ボトルをナンバリングする時間とか、つまり準備に掛かる時間を考慮しているのだろう。
続いて、グラス毎の量を考えてみると、
A~E=489滴、F=496滴、G=497滴、H~J=500滴と、滴数にすると差がでるものです。
1滴は0.03~0.05mlと言われているので、中を取って0.04mlとして、ワイングラスには
489x0.04=19.56
496x0.04=19.84
497x0.04=19.88
500x0.04=20.00
という計算になった。
一般的にワイングラスに注ぐワインの量は90ml~150mlが適当とされているようで、20mlは随分と少ないが、まぁよいだろう。
それに、注射器やスポイトも使いまわすわけにはいかないので、1000本必要になるので、それを調達することのほうが大変だと思う。
他にも、不十分だと思う理由として、囚人を使うということは、王様に殺意を抱いている可能性がある人物が、あえて死んだふりとかされると、導き出される数値が変わってしまって、毒入りでないボトルを毒入りとしてしまい、その結果、王様が毒入りを飲む可能性も出て来ることになる。
例えば、死者が1名だった場合は、正しい結果が導き出されるが、死者が複数名いたらその中に別の原因で死亡した人が1人以上いると仮定する。
3人死亡者が居たら、毒入りボトルの可能性は2^3-1=7本となる。
10人を1グループとして、2グループで実施すれば、このような毒以外での死亡も簡単に判別出来る。
さて、この問題を改変してみる。
1000本のワインのうち、1本には毒薬を、他の1本には解毒剤を混入したら、どうすればいいだろうか。
私が王様ならば、1000本捨てるだろうね。
マイクロソフトの入社テストであるならば、王様はビル・ゲイツなので、ビル・ゲイツならどうするんだろうか。
やっぱり捨てちゃうんじゃないかな?
このように、数学屋の私は、問題を作成した意図を考えて、作者の求める答えまたはそれ以上の答えを探そうとする傾向にあります。
ときに、その深読みが吉と出る場合もあれば、凶と出る場合もありますがね。
問題
ある王様は1000本の高価なワインを所蔵している。
その内の1本に毒が仕込まれていて、その毒のボトルを探し当てるのに囚人を使うことにした。
さて、何人の囚人が必要か。
因みに、毒ワインは1滴で致死量に達し、効果が現れるのに20時間を要するものとする。
マイクロソフトの入社テストとして広まっているものですが、どうなんでしょう。
数学屋の私ですが、コンピュータのエンジニアでもあり、RAIDシステムの講師などもしていたので、ジャンルとして数学だけで収まるのだろうか。
これは、毒が入っている、入っていないの2パターンなので、2進数で考えればよい。
2進数が何桁で1000に達するのかといえば、2^10=1024ですので、10人の囚人ということになります。
ワインボトルに1から1000までナンバリングする。
0000000001(2)=1(10)
0000000010(2)=2(10)
0000000011(2)=3(10)
...
1111101000(2)=1000(10)
ABCDEFGHIJ
(2)は2進数、(10)は10進数という意味です。
これを縦にみて、ABCDEFGHIJの10個のグラスに1が立っているボトルのワインを入れる。
飲んでから20時間後に、どの囚人が死んだのかで、ワインの番号が解る仕組みです。
というのが、おそらく一般的な模範解答なのだろう。
但し、私はこの方法では不十分だと考えるのです。
まず、なんで毒の効果が現れるのが20時間後と設定されているのか。
問題文にはない、なんらかの条件が含まれていた可能性も考えられる。
例えば、20時間という遅効性の毒を使うことに意味があるとするならば、24時間以内に毒のボトルを探し当てなければいけないとかかな?
おそらく1秒で即死ならば、死ぬまで1滴ずつ与え続ければいいという解答が出てしまうからだろうか。
そこで、ワインを1滴ずつグラスに注ぐ作業工程に掛かる時間を考えてみる。
注射器やスポイトで吸い取って、各グラスに垂らしていくのだろうか。
計算がし易いように、仮にワインを1000本ではなく1024本だとすると、10個のグラスには512滴ずつ垂らす必要がある。
厳密に計算するならば、上記の512滴から、1001~1023までの滴数を引きえばよい。
1000以上なので、512+256+128+64+32=992より上なので、上位5ビットはすべて1なので5x23=115。
下位5ビットは、16+15+12+12+12=67。
合計182滴。
512-182=330
後半にフラグが立ってるのが多いので、結構減るものです。
仮に、慎重をきして1滴垂らすのに10秒掛けたとしても、3300秒で1時間掛からないことになる。
単純計算で500滴と計算したら、1滴に10秒だと、50000秒=1時間23分20秒となる。
スポイトなどを用意する時間とか、ボトルをナンバリングする時間とか、つまり準備に掛かる時間を考慮しているのだろう。
続いて、グラス毎の量を考えてみると、
A~E=489滴、F=496滴、G=497滴、H~J=500滴と、滴数にすると差がでるものです。
1滴は0.03~0.05mlと言われているので、中を取って0.04mlとして、ワイングラスには
489x0.04=19.56
496x0.04=19.84
497x0.04=19.88
500x0.04=20.00
という計算になった。
一般的にワイングラスに注ぐワインの量は90ml~150mlが適当とされているようで、20mlは随分と少ないが、まぁよいだろう。
それに、注射器やスポイトも使いまわすわけにはいかないので、1000本必要になるので、それを調達することのほうが大変だと思う。
他にも、不十分だと思う理由として、囚人を使うということは、王様に殺意を抱いている可能性がある人物が、あえて死んだふりとかされると、導き出される数値が変わってしまって、毒入りでないボトルを毒入りとしてしまい、その結果、王様が毒入りを飲む可能性も出て来ることになる。
例えば、死者が1名だった場合は、正しい結果が導き出されるが、死者が複数名いたらその中に別の原因で死亡した人が1人以上いると仮定する。
3人死亡者が居たら、毒入りボトルの可能性は2^3-1=7本となる。
10人を1グループとして、2グループで実施すれば、このような毒以外での死亡も簡単に判別出来る。
さて、この問題を改変してみる。
1000本のワインのうち、1本には毒薬を、他の1本には解毒剤を混入したら、どうすればいいだろうか。
私が王様ならば、1000本捨てるだろうね。
マイクロソフトの入社テストであるならば、王様はビル・ゲイツなので、ビル・ゲイツならどうするんだろうか。
やっぱり捨てちゃうんじゃないかな?
このように、数学屋の私は、問題を作成した意図を考えて、作者の求める答えまたはそれ以上の答えを探そうとする傾向にあります。
ときに、その深読みが吉と出る場合もあれば、凶と出る場合もありますがね。