开关和灯泡问题

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

解析:

首先想到的就是通过打开不同的开关,进去后看灯是否亮来找出对应关系。可能打开的开关数量只有0,1,2,3共四种情况,没有一种情况能解决这个问题。所以必须找到其它的信号。

鉴于灯泡亮一段时间后会发热,我们可以使用灯的热度作为一个信号。这样我们就有了

1 - 热且亮

2 - 热不亮

3 - 亮不热

4 - 不热不亮

四种状态,足以用来区分三只灯泡了。

这里可以理解成一个编码问题,灯泡的状态作为编码空间(有4个状态,即4进制),进屋的次数作为编码位数。

所有答案是:

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

推广1:

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

解析:根据灯泡有4个状态,1次进房间正好可以区分4个灯泡,

答案:设四个开关是1、2、3、4,首先打开开关1和2半个小时,然后关闭2,打开3进房间,查看灯泡状态,热且亮的对应开关1,热不亮的对应开关2,亮不热的对应开关3,不热不亮的对应开关4;


推广2:

在房里有n盏灯,房外有n个开关,在房外看不见房内,且进门后只能观察灯的亮度的情况下,你需要进门多少次才能区分哪个开关控制哪一盏灯?

解析:根据分析,灯泡的状态作为编码空间(有4个状态,即4进制),进屋的次数作为编码位数,这是一个4进制的表示问题,问题即转化为:n表示成4进制有几位?

答案为: log4(n).


3. 在房里有n盏灯,房外有n个开关,每个开关有三种状态(开,关,半开(亮度为开的一半))在房外看不见房内,且进门后只能观察等的亮度的情况下,你需要进门多少次才能区分哪个开关控制哪一盏灯?

解析:现在一个开关可以让灯泡产生出6中状态:热切亮,热且半亮,亮不热,半亮不热,热不亮,不热不亮;即变为一个6进制问题:n表示成6进制有几位?

答案为: log6(n).

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值