こんにちはブログ担当のYです。
今回も論理クイズを紹介します。
論理クイズ 複合毒入りワインを見つけ出せ!

王様はパーティのために8本のワインを用意しましたが、暗殺者が「2つの成分が混ざると致死毒になる」という特殊な毒を仕込みました。
- 1本のワインには「成分A」が、別の1本には「成分B」が入っています(残りの6本は安全です)。
- 「成分A」と「成分B」の両方を飲んだ者だけが、最後に飲んだ日の深夜0時に死亡します(片方だけなら何日経っても無害です)。
- パーティまであと2日あり、毒見のチャンスは「今日」と「明日」の2回です。
王様は囚人を使ってどのワインに毒が入っているか調べようと考えました。
さて、2日の間に毒入りのワイン2本を見つけるには、最低でも何人の囚人が必要でしょうか?
答え
4人
解説
8本のワインの中から2本を選ぶ選び方は、28通りあります。それがなぜたった4人で毒入りワインを特定できるのでしょうか。
1日目
この手のパズルではおなじみですが、ワインに番号を振っていきます。
0番から7番(2進数で000~111)の番号を振ります。
4人の囚人を2つのペアにわけます。
ペアAの囚人2人は0桁目、ペアBの囚人2人は1桁目を担当させます。
具体的に言うと、ペアAの囚人を囚人1、囚人2とします。
囚人1にはワインの番号が2進数で一番下の桁が0のワインを全て飲ませます。0番、2番、4番、6番のワインです。(000,010.100,110)
囚人2にはワインの番号が2進数で一番下の桁が1のワインを全て飲ませます。1番、3番、5番、7番のワインです。(001,011,101,111)
ペアBの囚人を囚人3、囚人4とします。
囚人3にはワインの番号が2進数で真ん中の桁が0のワインを全て飲ませます。0番、1番、4番、5番のワインです。(000,001,100,101)
囚人4にはワインの番号が2進数で真ん中の桁が0のワインを全て飲ませます。2番、3番、6番、7番のワインです。(010,011,110,111)
これによって、次の様な結果に分かれます。
・両方のペアで死人が出る。
・片方のペアで死人が出る。
・両方のペアで囚人が両方生き残る。
1日目で両方のペアで死人が出た場合
仮に、ペアAで囚人1が死亡、ペアBで囚人4が死亡した場合を考えます。
死亡したということは、囚人が飲んだワイン4本の中に毒入りワインが2本とも含まれていたということになります。
囚人1は0、2、4、6番のワインを飲みました。
囚人4は2、3、6、7番のワインを飲みました。
共通する2本のワインは2番と6番なので、この2本が毒入りワインです。
各囚人が死亡した場合にわかることは次のとおりです。
- 囚人1が死亡した場合 - 毒入りワインは両方とも番号が2進数で一番下の桁が0
- 囚人2が死亡した場合 - 毒入りワインは両方とも番号が2進数で一番下の桁が1
- 囚人3が死亡した場合 - 毒入りワインは両方とも番号が2進数で真ん中の桁が0
- 囚人4が死亡した場合 - 毒入りワインは両方とも番号が2進数で真ん中の桁が1
したがって、例に挙げた1と4が死亡した場合は、2進数で真ん中の桁が1で一番下の桁が0ということを表しています。
つまり、毒入りワインの番号は2進数で表すと「?10」となることがわかります。
毒入りワインは2本なので、?の部分に0を入れたものと1を入れたもの両方が毒入りです。
010の2番と110の6番が毒入りワインなので、この方法で毒入りワインを特定することができます。
片方のペアだけ死人が出た場合
- 囚人1が死亡した場合 - 毒入りワインは両方とも番号が2進数で一番下の桁が0
- 囚人2が死亡した場合 - 毒入りワインは両方とも番号が2進数で一番下の桁が1
- 囚人3が死亡した場合 - 毒入りワインは両方とも番号が2進数で真ん中の桁が0
- 囚人4が死亡した場合 - 毒入りワインは両方とも番号が2進数で真ん中の桁が1
これがわかっているため、どの囚人が死亡したかによって情報が得られます。
仮に、囚人2が死亡したとしましょう。
すると、毒入りワインは両方とも2進数で表すと一番下の桁が1だということがわかります。
つまり、1番、3番、5番、7番のワインの中に毒入りワインが2本含まれていることがわかります。
ペアBは囚人が両方生き残っているため、真ん中の桁は0か1かわかりません。
つまり、毒入りワインの番号は「??1」です。
2日目にワインを飲ませることで2本の毒入りワインを特定しましょう。
ここでワインを飲ませるのは、1日目に2人とも生き残ったペアBの囚人たちです。
この2人はすでに毒入りワインを片方飲んでいます。
なぜなら、ペアで飲んだワインは完全に別の4本なので、死人が出たペアでは死んだ囚人が毒入りワインを2本とも飲み、生き残った囚人は1本も飲んでいません。
両方生き残ったペアでは1人1本ずつ毒入りワインを飲んだということです。
ペアBの囚人3と4に、2進数で一番上の桁が1のワインを飲ませることにします。5,6,7,8番のワインです。
これによって考えられる結果は次の4通りです。
- 両方生き残る
- 囚人3が死亡する
- 囚人4が死亡する
- 両方死亡する
両方生き残った場合
囚人3と4は毒入りワインを1本ずつ飲んだ状態でした。
つまり、5,6,7,8番のワインの中に毒入りワインが1本でも含まれていれば、少なくともどちらかは死亡するはずです。
両方生き残ったということは、5,6,7,8番のワインには毒入りワインがなかったということです。
2進数で一番上の桁が1のワインには毒がなかったので、毒入りワインは両方とも一番上の桁は0だとわかります。
「??1」までわかっているので、この情報によって「0?1」とわかりました。
毒入りワインは2本あるので、「001」の1番、「011」の3番が毒入りワインとわかります。
囚人3か4が死亡した場合
どちらか片方が死亡した場合、一番上の桁が1のワインには毒入りワインは1本あったとわかります。
なぜなら、毒入りワインが2本だった場合、2人とも死亡し、0本だった場合、両方生き残るはずだからです。
つまり、毒入りワインは「0?1」のワインと「1?1」のワインの2本だとわかりました。
それぞれの真ん中の桁が0か1かは、囚人3と4のどちらが死亡したかによってわかります。
囚人3が死亡した場合、囚人3は1日目に「真ん中の桁が0のワイン」を飲み、2日目に「一番上の桁が1のワイン」を飲みました。つまり、「真ん中の桁が0のワイン」と「一番上の桁が1のワイン」は別々の毒入りワインです。
「001」(1番)と「111」(7番)が毒入りです。
囚人4が死亡した場合、囚人4は1日目に「真ん中の桁が1のワイン」を飲み、2日目に「一番上の桁が1のワイン」を飲みました。つまり、「真ん中の桁が1のワイン」と「一番上の桁が1のワイン」は別々の毒入りワインです。
「011」(3番)と「101」(5番)が毒入りです。
両方死亡した場合
両方死亡したということは、5,6,7,8番のワインに毒入りワインが2本ともあったということになります。
つまり、毒入りワインは両方とも2進数で一番上の桁が1だとわかります。
「??1」までわかっているので、「1?1」になり、毒入りワインは2本あるため、「101」(5番)と「111」(7番)の2本が毒入りとわかりました。
1日目で両方のペアで死人が出た場合
1日目に死亡した囚人は、毒入りワインを両方飲んでいます。
仮にペアAから囚人2が死亡し、ペアBから囚人4が死亡したとします。
囚人2は一番下の桁が1のワインを飲み、囚人4は真ん中の桁が1のワインを飲みました。
その中に毒入りワインが両方あったため、毒入りワインの番号は2進数で「?11」とわかりました。
毒入りワインは2本あるため、「011」(3番)と「111」(7番)の2本が毒入りワインです。
他の論理クイズの記事もCheck!


別解として、八本のワインに1から8までの番号を付け、4人の囚人に1と2,3と4,5と6,7と8 のいずれか2本以外を飲ませる方法があります。
この方が、場合分けが簡単です。
1人だけ生き残れば、その囚人が飲まなかったワインが毒入り。
2人生き残れば、2人が飲まなかったワインに1本ずつ毒があると分かります。
2日目は、2人とも、飲まなかったワインのうち1本を飲めば良いです。1日めに飲んだワインも含めて、毒入りワインを2本飲んだ場合のみ死亡するので、死亡した場合は、飲んだワインに毒があり、生きていれば飲まなかったワインに毒があると分かります。
コメントありがとうございます。
おっしゃる通り、囚人たちに異なる2本以外のワインを飲ませることでも毒入りのワインを特定できますね!