房间里有三盏灯问题解决方案

http://blog.csdn.net/pipisorry/article/details/36014835

question:房间里有三盏灯,屋外有三个开关,分别控制这三盏灯,只有进入房间,才能看到哪一个电灯是亮的。请问如何之进入房间一次,就能指明哪一个开关控制哪一个灯?

小解:

三个灯: 打开两个灯, 过一会关闭一个. 进去看亮着的, 不亮但是发热的,不亮也不发热的 .区别出来.

四个灯: 打开两个灯, 过一会关闭一个, 然后打开一个新的灯, 不亮但是发热的, 亮但是 不发热的, 亮而且发热的, 不亮也不发热的. 区别出来.

详解:

这里有三个未知数,对应亮与不亮只有两个已知值,不能解这个问题。还需引进别的属性。

(1)引进开灯时间长短热的属性

A B C三盏灯 A开时间长一些然后关掉 B开时间短一些关掉 C不开 根据灯热的三个程度即可解决这个问题

A B C三盏灯 先把A长时间开一会  然后开B  C不开  根据A是热的 B是亮的 C是不亮的 也可解决这个问题

(2)扩展亮这个属性

A B C三盏灯 进入房间给A灯接入电阻,(三个灯应该不是串联的,如果是串联的话,设三个开关就没有意义了) 开B灯 ,根据A灯不是很亮 B灯很亮 C灯不亮解决这个问题

A B C三盏灯 给三盏灯分布接入大小不等的电阻   根据灯的亮暗程度也可解决这个问题

(3)引入灯闪烁这个属性

根据闪烁的快慢。

总结:不能只有0和1的这两个概念,要有(0,1)这样的区间概念。

偏解:
三盏灯为恒温灯时:
把一个房间的灯拆掉一个,并在剩下两个灯泡之一蒙上有色纸(使两盏灯发出的光线不同)房门打开,窗帘不拉(应该可以从有开关的房间看到等是否亮),则
1、逐个试开关,发现灯没亮的就是控制拆掉那个的开关
2、根据灯光颜色判断开关

1.准备一个整流二极管。
2.进入带开关的房间,将开关编号为1,2,3号
3.设置1号开启,2号关闭,3号开关打开盖,将整流二极管串入回路,再开启。
4.到另一间房间,看见灯亮的是1号,不亮的是2号,闪烁亮的是3号。

ref:
http://blog.csdn.net/pipisorry/article/details/36014835
http://blog.csdn.net/kupepoem/article/details/10752333
75道逻辑思维题以及其解法:
http://www.360doc.com/content/11/0103/13/4812461_83585246.shtml
http://wenku.baidu.com/view/04f8c6ed6294dd88d0d26b34.html

房间里有三盏灯问题解决方案

时间: 2024-07-29 14:10:55

房间里有三盏灯问题解决方案的相关文章

哪个开关控制哪盏灯

QUESTION: 房间里面有三盏灯,屋外有三个开关,分别控制着三盏灯,只有进入房间,才能看到哪盏灯是亮的.请问如何只进入房间一次,就能指明哪个开关控制哪盏灯??? ANSWER: 假设开关编号为A,B,C.打开开关A,但不进入房间:等过了大约若干分钟后,关闭开关A,并且打开开关B:同时迅速进入房间内,并且用手摸房间内不亮的两盏灯以确定哪盏灯发热.设[房间内亮着的灯.不亮但温度较高的灯.不亮但温度较低的灯]的编号分别为L1.L2.L3. 判断的结果是:开关A控制L2:开关B控制L1:开关C控制L

现在有100个标记过的电灯泡。第一个人经过这些灯时,点亮所有的灯,第二个人经过时每隔一盏灯就切换开关一次,第三个人经过时每隔两盏灯切换开关一次。请问,当第100个人经过时,还剩多少盏亮着的灯?

做了一个草图:10(纵10人)X10(横10栈灯) 第一个人:1 1 1 1 1 1 1 1 1 1第二个人:0 1 0 1 0 1 0 1 0 1第三个人:0 0 1 0 0 1 0 0 1 0第四个人:0 0 0 1 0 0 0 1 0 0第五个人:0 0 0 0 1 0 0 0 0 1第六个人:0 0 0 0 0 1 0 0 0 0第七个人:0 0 0 0 0 0 1 0 0 0第八个人:0 0 0 0 0 0 0 1 0 0第九个人:0 0 0 0 0 0 0 0 1 0第十个人:0 0

由100盏灯想到的(一)

原题目地址:http://www.cnblogs.com/DeanChopper/p/4772593.html 大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的编号与被控制的灯相同.)开始时,灯是全灭的.现在按照以下规则按动开关.第一次,将所有的灯点亮.第二次,将所有2的倍数的开关按一下.第三次,将所有3的倍数的开关按一下.以此类推.第N次,将所有N的倍数的开关按一下.问第100次按完以后,大厅里还有几盏灯是亮的. 网上找了

【两地三中心】两地三中心--灾备解决方案

两地三中心,两地是指同城.异地,三中心是指生产中心.同城容灾中心.异地容灾中心.结合近年国内出现的大范围自然灾害,以同城双中心加异地灾备中心的"两地三中心"的灾备模式也随之出现,这一方案兼具高可用性和灾难备份的能力.同城双中心是指在同城或邻近城市建立两个可独立承担关键系统运行的数据中心,双中心具备基本等同的业务处理能力并通过高速链路实时同步数据,日常情况下可同时分担业务及管理系统的运行,并可切换运行:灾难情况下可在基本不丢失数据的情况下进行灾备应急切换,保持业务连续运行.与异地灾备模式

由100盏灯想到的(二)

本系列的第一篇: http://www.cnblogs.com/dhf327/p/4773672.html 100盏灯的问题,上次我们算是基本解决了,不管算法上是否够优化,至少我们已经在可接受的时间得到了答案. 但是最后还留了一道题,亲们,你们是不是已经想出来了? 一,上次的题目 上一篇给出了python求一个正整数的所有的因数的方法,这个方法目前工作正常,求单个正整数的所有因数速度上也没有任何问题. 但是结合上一篇最后的题目,有心的同学一下子就看出问题来了,1到10的12次方,假设求每个数的所

从150盏灯这道奥数题说起......

前段时间,成都9岁学生纠错奥赛名题这篇文章在网上爆红.本文不关注神童之类的新闻,仅仅从计算机实现的角度来验证题目正确性. 题目描述(需求描述): 150盏亮着的电灯,各有一个拉线开关控制,按顺序编号为1,2,3,-,150.将编号为3的倍数的灯的拉线各拉一下,再将编号为5的倍数的灯的拉线各拉一下,拉完后亮着的灯数为__盏. 使用暴力穷举法来获得正确答案: 为了简单期间,我们可以将150盏灯缩小10倍,变为15盏灯,这样就很容易用暴力穷举法来标记出灯的最终结果: 答案: 第一遍拉灭3的倍数,15÷

还有几盏灯?

大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的编号与被控制的灯相同.)开始时,灯是全灭的.现在按照以下规则按动开关. 第一次,将所有的灯点亮. 第二次,将所有2的倍数的开关按一下. 第三次,将所有3的倍数的开关按一下. 以此类推.第N次,将所有N的倍数的开关按一下. 问第100次按完以后,大厅里还有几盏灯是亮的. 解答: 这题和数字的因数个数有关.例如:12=1*12=2*6=3*4,所以1,2,3,4,6,12就是12的

屋子不大,一张床,一盏灯

朱自清在他的<荷塘月色>里写道:我爱热闹,也爱冷静:爱群居,也爱独处.生活中有些时候,并不需要热闹繁华.激情四射. 于是,我常常站在夕阳中,独自一人,看天际渐渐褪去时的那抹辉煌:看一身疲惫的倦鸟归巢:看残红下漫步的老人:看暮风中飞舞的红叶……此刻,忘却了功名利禄,抛开了滚滚红尘,有的黄鹤楼只是一种安详的幸福心境,一种佛禅的宁静意境,原来独处会有如此的美好. 时间在指尖悄悄地划过,独处虽有些寂寞,但是寂寞中却有一种充实满足的感觉.它是一种美丽的心境,如行云流水,无拘无束,是对人生中美好时刻和美好

100人100盏灯(详解)

题:一百盏灯排成一排,初始状态是亮的, 编号为 1-100,100个人编号1-100.每个人从1号灯开始逐次走过这100盏灯.每个人只拉他对应编号的倍数的灯,问最后亮着几盏灯? 这是一道很经典的笔试题.频繁出现.下面是比较简洁的实现代码.已验证. 1 package 笔试; 2 3 public class 完全平方数100人和灯 { 4 public static void main(String[] args) { 5 boolean[] light=new boolean[100]; 6