题目
阁楼里有一盏老式白炽灯,楼下有三个开关,其中只有一个能控制这盏灯。
你可以先在楼下对开关做一些操作,然后只允许上阁楼一次。
问题是:如何在这一次上阁楼后,判断到底是哪一个开关连接着阁楼的灯?
分析
关键点是:这是老式白炽灯,除了“亮/灭”以外,还有一个可利用的信息是“灯泡是否发热”。
所以可以把三个开关分别编码成三种状态:
- 一个开关对应“灯亮着”。
- 一个开关对应“灯灭但灯泡是热的”。
- 一个开关对应“灯灭且灯泡是冷的”。
具体操作:
- 先把开关A打开,等待几分钟,让灯泡充分变热。
- 再把开关A关闭。
- 把开关B打开。
- 开关C保持关闭,然后只上阁楼一次。
到阁楼后判断:
- 如果灯是亮的,说明连接的是开关B。
- 如果灯不亮但灯泡是热的,说明连接的是开关A。
- 如果灯不亮且灯泡是冷的,说明连接的是开关C。
这样一次上楼就能唯一确定对应关系。