今回は、激むずな問題を1つ。
僕は解けませんでした。
あなたはこの問題解くことができるでしょうか。
また今回の問題は少し知識が無いと厳しいかもしれません。
無くても解けます。が、もし解けたとしたら超の付く天才です。
知識があってもなかなか解けないと思います。
ではさっそく問題いってみましょう。それでは
レッツゴー
問題
一滴でも飲むと約20時間後に死ぬ毒が、1000本のワインのうち1本にだけ入っていることが分かっています。
王様はこのワインを奴隷に飲ませて、24時間以内にどれが毒入りか調べなくてななりません。
ここで問題です。
奴隷は最小で何人必要になるでしょうか?
少し物騒な問題ですが、これはフィクションなのでご安心を。
人数や時間の制限さえなければ簡単に解けますが、この制限がなかなかにやっかいです。
今回はヒントありです。
自力で考えたい人は、ここでいったん止めて考えてみてください。
ヒント1
1000人ではありません
1000人なんて面白くない答えではありません。
これが答えなら怒られてしまいそうです。
ヒント2
まずはワインが2本の場合を考えてみよう
論理クイズの常とう手段、まずは少ない場合から考えて、数を増やしていくというものです。
今回なら、ワインが2本で、そのうち毒入りワインが1本の場合から考えていくと良いです。
ワインが2本なら、奴隷は1人で良いです。
1人にどちらかのワインを飲ませ、死んでしまったらそのワインが、生きていたらもう1本の方が毒入りだと分かります。
ラストヒント
ワインが4本の場合も考えてみる
ではワインが4本の場合はどうでしょうか。
ワイン4本の中に毒入りワイン1本ある場合です。
この場合、奴隷は2人で良いです。
2人は以下のようにワインを飲みます。
奴隷1 | 奴隷2 | |
ワイン1 | 飲む | 飲む |
ワイン2 | 飲む | 飲まない |
ワイン3 | 飲まない | 飲む |
ワイン4 | 飲まない | 飲まない |
すると、以下のように毒入りワインが分かります。
- 奴隷1、2が死んだら毒入りワイン1
- 奴隷1だけが死んだら毒入りワイン2
- 奴隷2だけが死んだら毒入りワイン3
- 奴隷1、2が生きていたら毒入りワイン4
さあ、何かに気付きませんか?
ここから先に答えがあります。
答え
10人
こんなに少なくても良いんです。
なぜ10人でワイン1000本の中にある1本の毒入りワインを見分けられるのか。
解説パートにいってみましょう。
よく分かる解説
解説①
2進数の考え方
気付いた方は気付いたかもしれません。
これは2進数の考え方です。
2進数の表し方で、1桁で表せるのは、
0、1
と2種類、2桁の場合は、
00、01、10、11
と4種類、4桁の場合、
0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111
と16種類を表せます。
これは、1桁あたりに2通り(0か1)があり、1桁では2通り、2桁では2×2で4通り、4桁では2×2×2×2で16通りと表せる数が増えていくからです。
そして、0をワインを飲む人、1を飲まない人と分け、死んだ人と飲んだ人を照らし合わせることで、どれが毒入りワインか分かります。
この考え方を4人の場合を例に見てみましょう。
解説①-1
2人の場合
奴隷1 | 奴隷2 | |
ワイン1 | 0 | 0 |
ワイン2 | 0 | 1 |
ワイン3 | 1 | 0 |
ワイン4 | 1 | 1 |
とすると、00が奴隷1も2もワインを飲んだ場合で、01が奴隷1だけがワインを飲んだ場合、とだれが飲んだかを見てみることでどれが毒入りかが分かります。
解説①-2
10人の場合
そして、答えの10人場合は
2×2×2×2×2×2×2×2×2×2=1024
と、1024本まで調べることができます。
今回は1000本なので、
ワイン\奴隷 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
・ ・ ・ |
1000 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
上のようにワインを奴隷に飲ませ、飲んだ奴隷(0)と死んだ奴隷を照らし合わせて、毒入りワインを特定することができます。
- 奴隷が全員死んだ場合毒入りワインは1
- 奴隷10以外全員員だ場合毒入りワインは2
- …
- 奴隷6、7だけが死んだ場合毒入りワインは1000
となります。
1111111111までいけば、1024本のワインを調べられます。
解説②
指数の考え方
考え方としては同じですが、指数で考えても良いです。
ワインが2本の場合2¹で1人
ワインが4本の場合2²で2人
ワインが16本の場合2⁴で4人
と指数の右肩の分人数を用意すれば良いことに気付けば、
ワインが1000本の場合2¹⁰は1024なので1000本は調べられます。
よって10人である、としても良いです。
まとめ
この問題は見た時に解けなかったし、解答を見ても分からなくて、意味不明だったのを覚えています。
難しすぎるんですよねぇ。
解けた人は自慢しても良いレベルだと思います。
2進数とか思いつかんですし。
というわけで、超難問回でした。
今回は以上です。それでは
ザ・エンドってね
関連記事
【論理クイズ】「5人の海賊と100枚の金貨」 難問です。あなたならどう分ける?
【論理クイズ】「数字当てクイズ」 解答不可能レベルの超難問です。あなたならどう考える?
コメント
1人の飲めるワインの量、飲まなければいけない量などを定義する必要があると思います。
今の問題文だと、1人に1分ごとにワインを飲ませ続けて、死んだ時間から毒入りワインを特定することも可能になるのではないでしょうか。
コメントありがとうございます。
20時間ぴったりで効果が表れるならそれも可能になってしまいますね。
問題の趣旨に沿うよう問題文を改変しました。
ご指摘ありがとうございます。
9人で求められる方法を考えたのでご意見を下さい
まず初めに9人が上記解説の2番から10番とみなしてワインを飲みます
ただし、上の解説とは0/1の意味を逆にしておきます(0は飲まない1が飲む)
その3時間後くらいに、全員に1番が飲むべきワインを飲ませます
開始から約20時間後に全員死んだ場合はワイン512が毒で確定します
20時間後の時点で1人以上残った場合は、そいつが23時間後に死ぬかどうかで1番の役割の結果がわかるため全ての結果が確定します
この方法であれば死ぬ時刻が20時間ちょうどでなく、仮に前後1時間程度のブレがあっても10人未満で実行可能だと思いました
ネズミかなんかを10匹用意して飲ませればいいので0人