📜  蓝眼岛拼图

📅  最后修改于: 2022-05-13 01:57:25.410000             🧑  作者: Mango

蓝眼岛拼图


问题:一群人住在一个岛上,当一个访客带着一个奇怪的命令来的时候:所有蓝眼睛的人必须尽快离开这个岛。每天晚上8点会有一班飞机起飞。每个人都可以看到其他人的眼睛颜色,但他们看不到自己的(也不允许任何人告诉他们)。此外,他们不知道有多少人有蓝眼睛,尽管他们知道至少有一个人有。蓝眼睛的人需要多少天才能离开?

解:假设岛上有n个人,其中c个人是蓝眼睛。我们被明确告知 c > 0。

情况 c = 1:只有一个人有蓝眼睛
蓝眼睛的人应该环顾四周,意识到没有其他人是蓝眼睛的。既然,他知道至少有一个人是蓝眼睛的,那他就必须断定是他蓝眼睛。因此,他将乘坐当天晚上的航班。

情况 c = 2:正好有两个人有蓝眼睛
两个蓝眼睛的人看到了对方,但不确定 c 是 1 还是 2。他们从前面的例子中知道如果 c = 1,蓝眼睛的人会在第一个晚上离开。因此,如果另一个蓝眼睛的人还在那里,他必须推导出 c=2,这意味着他自己有蓝眼睛。然后两人将在第二天晚上离开。

情况 c > 2:一般情况
随着我们增加 c,我们可以看到这个逻辑继续适用。如果c=3,那么这三个人会立即知道有2个或3个蓝眼睛的人。如果有两个人,那么那两个人会在第二天晚上离开。所以,当那天晚上之后其他人还在的时候,每个人都会得出结论c=3,因此他们也有蓝眼睛。他们会在那天晚上离开。



这种相同的模式向上延伸到 c 的任何值。所以,如果c人是蓝眼睛,蓝眼睛的人要离开需要c个晚上。所有人都会在同一天晚上离开。