囚犯点灯问题:一盏灯,怎么数到 100?
逻辑思维游戏
100 个囚犯
1 盏灯
不许交流,怎么确认所有人都来过?
规则 ①
100 个囚犯
各关一间牢房
彼此完全无法交流
说话传纸条留记号
规则 ②
一个房间
一盏灯
一开始,灯是关着的
灯关着
规则 ③
每天随机挑一人
进这个房间
开灯关灯什么都不做
同一个人,可能被挑中很多次
规则 ④
任何人,随时
都可以宣布:
所有人都来过了!
说对了全体释放
说错了永远出不去
好消息
开始之前
可以商量一次对策
之后,再也不能交流
怎么约定?
?
?
问题来了
怎么约定,才能 100% 确定
所有人都来过了?
先暂停,想一想
难点
谁进过房间
别人看不到
能留下信息的,只有那盏灯
而它只有两种状态
?
亮
?
不亮
试一个办法
每个人进去
都把灯打开?
没用
一盏灯,怎么数到 100?
有人来过
?所有人都来过
破解的关键
选一个人
当「计数员」
计数员负责数数
其他人只负责「报到」
计数员
规则 · 其他囚犯
灯是关的
+
我从没开过灯
开灯 = 报到
每人只开这一次以后再进来,什么都不做
规则 · 计数员
看到灯亮着
把灯关掉
+
+1记上一个
如果灯是关的什么都不做
先用 4 个人演示
计数员记下0/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯关着
计数员
小红
小蓝
小绿
第1天
计数员记下0/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯关着灯亮着
计数员
小红小红
小蓝
小绿
开灯!
报到
第12天
计数员记下0/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯亮着
计数员
小红
小蓝
小绿
开灯!
报到
灯亮着
等下次
第23天
计数员记下01/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯亮着灯关着
计数员
小红
小蓝
小绿
灯亮着
等下次
关灯
记 1 个
第34天
计数员记下1/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯关着
计数员
小红
小蓝
小绿
关灯
记 1 个
开过了
不动
第45天
计数员记下1/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯关着灯亮着
计数员
小红
小蓝小蓝
小绿
开过了
不动
开灯!
报到
第56天
计数员记下12/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯亮着灯关着
计数员
小红
小蓝
小绿
开灯!
报到
关灯
记 2 个
第67天
计数员记下2/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯关着灯亮着
计数员
小红
小蓝
小绿小绿
关灯
记 2 个
开灯!
报到
第78天
计数员记下23/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯亮着灯关着
计数员
小红
小蓝
小绿
开灯!
报到
关灯
记 3 个
第8天
计数员记下3/ 3
其他人灯关着 + 没开过开灯,仅一次
计数员灯亮着关灯,记 1 个
灯关着
计数员
小红
小蓝
小绿
关灯
记 3 个
所有人
都来过了!
全体释放
为什么不会错
每个人,只开 1 次灯
亮一次 = 一个新人
不重复不遗漏
回到 100 人
道理一模一样
计数员数到0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
所有人都来过了
代价
要等很久
每数一个人,都得等
计数员恰好被选中
平均要等
10,418天
≈ 28 年半
一句话总结
慢,但 100% 可靠
一盏灯
+
事先分工
=
100一个不漏
思考题
如果一开始
没人知道灯是亮是灭
这个办法,该怎么改?
答案,留给你来想
?