开关和灯泡的对应关系?

时间:2021-01-26 19:22:39

在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分哪个开关控制哪一盏灯?

 


答案:

设三个开关是1、2、3。打开开关1等半个小时,关上开关1并打开开关2。
进房后去摸灯泡,热的是开关1对应的灯泡;亮的是开关2对应的灯泡;不亮不热的是开关3对应的灯泡。

 

首先想到的就是通过打开不同的开关,进去后看灯是否亮来找出对应关系。可能打开的开关数量只有0,1,2,3共四种情况,没有一种情况能解决这个问题。所 以必须找到其它的信号。鉴于灯泡亮一段时间后会发热,我们可以使用灯的热度作为一个信号。这样我们就有了热且亮,热不亮,亮不热,不热不亮四种状态,足以 用来区分三只灯泡了。
这个题可以理解成一个编码问题,灯泡的状态作为编码空间,进屋的次数作为编码位数。
如果只使用灯泡是否亮来判断,题目就相当于用一位二进制数来表示三种状态,是不可能的事情。加入了灯泡是否热后,就相当于用一位四进制数来表示三种状态,足够了。

 

此题的一些可能变化:
1. 在房里有四盏灯,房外有四个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分哪个开关控制哪一盏灯?
2. 在房里有n盏灯,房外有n个开关,在房外看不见房内,且进门后只能观察灯的亮度的情况下,你需要进门多少次才能区分哪个开关控制哪一盏灯?
3. 在房里有n盏灯,房外有n个开关,每个开关有三种状态(开,关,半开(亮度为开的一半))在房外看不见房内,且进门后只能观察等的亮度的情况下,你需要进门多少次才能区分哪个开关控制哪一盏灯?