論理パズル傑作選(前編)- 緑の目のドラゴンから海賊の金貨まで
ZOLXA
Mastermind
このシリーズの記事一覧
- 1. 論理パズル傑作選(前編)- 緑の目のドラゴンから海賊の金貨まで
- 2. 論理パズル傑作選(後編)- 視点を変えれば一瞬で解ける美しい問題
Sponsored
論理パズルは、直感を裏切り、思考の限界を押し広げてくれる知的な遊びです。ここでは、世界的に有名な4つの傑作パズルを紹介します。
1. 緑の目のドラゴン
問題
幼女が、ドラゴン100匹が生息する島を訪れました。
ドラゴンは100匹とも緑色の目をしています。
この島には不思議なルールがあります:
「もし自分が緑色の目をしていると分かった場合、その日の夜0時に島を出ていかなければならない」
この島に鏡はなく、ドラゴンは目の色について話すことを禁じられています。つまり、ドラゴンたちは自分の目の色を知りません。もちろん、お互いの目が緑色なのは見えています。
幼女は島を出るとき、すべてのドラゴンにこう告げました:
「この中に少なくとも1匹、緑色の目をしたドラゴンがいる」
なお、ドラゴンはきわめて論理的な生物で、すべてのドラゴンは1日1回同時に広場に集合します。
これから何が起こるでしょうか?
答え
100日目の夜に、100匹すべてのドラゴンが一斉に島を出ていきます。
解説:数学的帰納法
ドラゴンの数を減らして考えると理解しやすくなります。
1匹の場合
そのドラゴンは自分以外の誰も見ていません。幼女の発言で「それは自分のことだ」と即座に理解し、1日目の夜に出ていきます。
2匹(AとB)の場合
AはBの緑の目を見ています。BもAの緑の目を見ています。
- 1日目の夜: Aは「もしBが唯一の緑色なら、Bは今日出ていくはずだ」と様子を見ます。Bも同じことを考えます。誰も出ていきません。
- 2日目の朝: AはBがまだいるのを見て、「Bは私の目も緑だと見ているからだ」と悟ります。2日目の夜に2匹とも出ていきます。
3匹の場合
同様の論理で、3日目の夜に全員が出ていきます。
100匹の場合
99日目の夜までは誰も動きません。99日目の夜に誰も出ていかなかった事実を確認した翌朝、全員が「自分が100匹目の緑色だ」と理解します。
なぜ幼女の発言が必要だったのか?
「全員が他の99匹の緑の目を見ているのだから、緑の目がいることは最初から知っていたのでは?」
重要なのは、幼女の発言によって**「『緑色の目が少なくとも1つある』という事実を、全員が知っていることを、全員が知っている(共有知識化)」**という状況が生まれたことです。この「共通の起点(0日目)」が設定されたことで、論理の連鎖がスタートしたのです。
2. 5人の海賊と100枚の金貨
問題
5人の海賊(偉い順にA、B、C、D、E)が、100枚の金貨を手に入れました。海賊の掟により、以下のルールで分配します:
- 一番偉い海賊が分配案を提案する
- 提案者を含む全員で投票を行う
- 賛成が半数以上であれば採用、半数未満なら提案者は処刑され、次に偉い海賊が提案者になる
海賊たちの性質:
- 全員がきわめて論理的で賢い
- 非常に強欲で、自分が1枚でも多くの金貨を得ることを最優先
- 金貨の枚数が同じなら、他人が死ぬのを見るのが好き
- 優先順位:命 > 金 > 他人の死
一番偉い海賊Aは、どう分配すべきでしょうか?
答え
「A:98枚、B:0枚、C:1枚、D:0枚、E:1枚」
解説:逆行分析
人数が少ない最悪のケースから逆算して考えます。
DとEの2人だけの場合
Dは自分に投票すれば50%で可決。**「D:100枚、E:0枚」**で総取り。
C、D、Eの3人の場合
Cが死ぬと「D総取り、E:0枚」になります。Eは次なら0枚なので、今なら1枚でも喜んで賛成します。 よってCの必勝法は**「C:99枚、D:0枚、E:1枚」**
B、C、D、Eの4人の場合
Bが死ぬと「C:99、D:0、E:1」になります。次の世界で0枚になるDを買収します。 よってBの必勝法は**「B:99枚、C:0枚、D:1枚、E:0枚」**
A、B、C、D、Eの5人の場合
Aが死ぬと「B:99、C:0、D:1、E:0」になります。次の世界で0枚になるCとEを買収します。
結論: トップ(A)が最小限の利益で「弱者」を買収し、暴利を貪れるという世知辛い結果に。
3. 10人の死刑囚と赤白の帽子
問題
10人の死刑囚が階段に一列に並んでいます。全員が前を向いており、自分の前に並んでいる人全員を見ることができますが、後ろは見えません。
看守が彼らの頭にランダムに**「赤」か「白」**の帽子をかぶせました。
ルール:
- 一番後ろ(10番目)から順に、自分の帽子の色を答える(「赤」か「白」のみ)
- 正解すれば釈放、間違えれば処刑
- 後ろの人の答えと銃声は全員に聞こえる
- 事前に作戦会議が可能
確実に9人を助ける方法は?
答え
パリティチェック(偶奇判定)作戦
一番後ろの人(10番目)は、**「自分より前の赤い帽子の数が『偶数』なら赤、『奇数』なら白と言う」**という合図役に徹します。
解説
-
10番目の役割: 前の9人の赤い帽子を数え、偶数なら「赤」、奇数なら「白」と叫ぶ(自身の生死は50%の運)
-
9番目の推理: 後ろの声を聞き、自分の前(1〜8番目)の赤を数える。「全体で偶数」なのに「残りも偶数」なら自分は白、「残りが奇数」なら自分は赤。
-
以降: これを繰り返すことで、前の9人は100%正解できます。
これはコンピュータ通信の**「パリティビット」**と同じ仕組みです。
4. 暴君と1000本のワイン
問題
王様が宴会のために1000本のワインを用意しましたが、1本だけに猛毒が混入されています。
毒の性質:
- 数滴でも口にすると、正確に24時間後に必ず死ぬ
- 24時間経つまで症状は出ない
- 解毒剤はない
宴会は24時間後。王様は10人の死刑囚を使って毒見をさせます。
ルール:
- ワインを飲ませるチャンスは「今」の1回だけ
- 複数のワインを混ぜて飲ませることも可能
たった10人で、1000本から1本の毒入りを特定する方法は?
答え
2進数作戦
死刑囚10人を「2進数のビット(桁)」に見立てます。
| 死刑囚 | 担当する桁 |
|---|---|
| A | 1の位(2^0 = 1) |
| B | 2の位(2^1 = 2) |
| C | 4の位(2^2 = 4) |
| ... | ... |
| J | 512の位(2^9 = 512) |
解説
- ワインに1〜1000番の番号を振る
- 番号を2進数に変換
- **「その桁が『1』になっている番号のワイン」**を担当の死刑囚に飲ませる
例:
- ワイン3番(2進数: 0000000011)→ AとBに飲ませる
- ワイン1000番(2進数: 1111101000)→ J, I, H, G, F, D に飲ませる
24時間後、**「誰が死んだか」**を見て、死んだ死刑囚の担当する数字を足し合わせると、毒入りワインの番号になります。
10人で 2^10 = 1024 通りを識別できるため、1000本なら余裕で特定可能です。
まとめ
| パズル | 使う思考法 |
|---|---|
| 緑の目のドラゴン | 数学的帰納法、共有知識 |
| 海賊と金貨 | 逆行分析(後ろから考える) |
| 死刑囚と帽子 | パリティチェック(偶奇判定) |
| 暴君とワイン | 2進数、情報理論 |
論理パズルは、日常では使わない思考回路を鍛えてくれます。後編では、さらに美しいパズルを紹介します!
このシリーズの記事一覧
- 1. 論理パズル傑作選(前編)- 緑の目のドラゴンから海賊の金貨まで
- 2. 論理パズル傑作選(後編)- 視点を変えれば一瞬で解ける美しい問題