>_ 谬误台 // wondrous.top

首页 : /zh/t/puzzle/ : blue-eyes

INKWIRE(7) reasoning puzzles INKWIRE(7)

blue-eyes

午夜渡轮

一条规则、一座没有镜子的岛,和一句改变一切的话。

解题法
对公共公告做逆推归纳
发布
署名
阅读
4 分钟
归入
knowledge

名称

题目

一座岛上住着推理完美的人。每个人眼睛是绿色或灰色,能看见所有人的眼睛,唯独看不见自己的。岛上没有可以照出影像的表面,也禁止谈论眼睛颜色。

法律是精确的:任何人若推断出自己的眼睛颜色,就必须在当天午夜搭渡轮离岛;而猜错的人要受罚。一百年来,没有一个人离岛。

某天清晨,一位数了很多年的渡轮夫对着聚拢来的岛民说:「我能看到至少一个人的眼睛是绿色的。」他说的是真话。假设三百位岛民中恰好有 40 位绿眼。接下来会发生什么?什么时候发生?

信号

条件与每个条件所强制的结论

# 条件 它强制了什么
1 每位岛民都能看见其他所有人的眼睛 绿眼岛民看见 39 双绿眼;灰眼岛民看见 40 双绿眼
2 没有镜子,且禁止谈论眼睛颜色 没有人能靠观察或询问得知自己的颜色,只能靠对他人行为的推断
3 离岛需要确定性,猜错要受罚 只有当所有其他可能性都被「无人离岛」这个观察排除干净,岛屿居民才会离开
4 「至少有一个绿眼」为真,且所有人本就相信它 这句话的内容是旧的;新的是所有人现在都知道所有人都听见了它,并且知道彼此都知道,可以无限往上叠
5 恰好 40 位绿眼岛民 归纳给出第 40 夜:在第 k 夜,所有看见恰好 k−1 双绿眼的人离岛

例子

解题法

对绿眼岛民的人数做归纳。公告的唯一作用是给那条推理链造出一个基础情形——在这之前,这条链根本无法启动。

[+] 完整解法 4

先看最小情形。如果只有一位绿眼岛民,他会看见零双绿眼,听到公告后立刻知道公告说的就是自己,于是在第一夜离岛。

两个的情形:每位绿眼岛民看见一位绿眼,推理「如果我是灰眼,那他就是唯一一位,今晚就会走」。第一夜无人离岛,于是两人都断定自己是绿眼,在第二夜离岛。

由归纳,n 位绿眼岛民会在第 n 夜一起离岛。本题 n = 40,所以第 40 次午夜渡轮上,40 位绿眼岛民同时离开,其余 260 位灰眼岛民留下——他们要在第 39 夜过去之后才能排除更低的计数,而对他们的自身颜色来说,第 39 夜的沉默并不足以定案。

把最后这一点说清楚:灰眼岛民看见 40 双绿眼,他会推理「如果我是绿眼,总共有 41 位,那么离岛发生在第 41 夜;如果我是灰眼,总共有 40 位,那么今晚就会发生」。于是他等的其实是第 40 夜。第 40 夜正是那 40 位绿眼离开的夜晚,因此灰眼岛民在次日清晨得知自己的颜色,于第 41 夜离岛。

近亲条目

[+] 补充与常见疑问 3
既然人人都能看见绿眼,40 这个数字为什么还重要?
因为真正起作用的是推理的深度。一个看见 39 双绿眼的人必须考虑「如果只有 38 双会怎样」,而那个假设中的人又必须考虑 37 双,如此一直降到零。公告的作用是让这条下降链条终结。
灰眼岛民也会离岛吗?
会,晚一晚。看见 40 双绿眼的人无法区分「我是灰眼」和「我是绿眼」,直到第 40 夜过去:如果他也是绿眼,总数就是 41,第 40 夜不会发生任何事。当第 40 次渡轮载走 40 人,他就知道了,并在第 41 夜离开。
如果渡轮夫说的是「至少有两个绿眼」呢?
那么整个时间表会整体前移一晚:归纳从 2 而不是从 1 起步,离岛会发生在第 39 夜而不是第 40 夜。公告所给的「下限」决定了基础情形。

适用范围 — 本题用于推理练习;上面的归纳对任意绿眼人数都精确成立。