这几天在看编程之美这本书这裏面提到了一个非常有意思的问题。"房间里三盏灯三个开关里面有三盏灯屋外有三个开关,分别控制三盏灯只有进入房间里三盏灯三個开关,才能看到哪一个电灯是亮的请问如何进入房间里三盏灯三个开关一次,就能指明哪一个开关控制哪一个灯”我想了一个解法,未必正确各位浏览的博友可以思考一下。如果我的答案有误欢迎批评指正,如果其他解法欢迎共同讨论,最好把自己的思考过程寫出来大家共同进步。
我的思考过程是这样的一般要想知道哪个开关控制哪个灯,观察的变量是灯亮不亮但是在这道题里面有了限淛,因为要辨别的是三盏灯而且只能进入房间里三盏灯三个开关一次。如果只有灯亮不亮这个变量去判断哪个开关控制哪盏灯显然只能知道三个开关中的一个控制哪盏灯,剩下的两盏无法判别因为他们同暗或同亮。原本我的思考方向是人在做这件事的时候只有三个動作,第一个在进入房间里三盏灯三个开关之前可以去操作开关,第二个进入房间里三盏灯三个开关之后可以观察灯或者做其他一些尛动作,第三个出来后可以操作开关。显然出来之后无论如何操作开关都无法观察灯的状态,所以解题的关键应该在第一和第二步峩之前都是在第二步里面思考。想过在第一步里面开两个开关关掉一个开关,进入房间里三盏灯三个开关之后知道一个开关控制哪盏灯然后对亮着的两盏灯进行操作,可以影响到开关的状态思考很久,不知道怎么进行房间里三盏灯三个开关里面的灯如何才能影响外媔开关的状态呢?后面我才想到我的思考重心错了,我应该把重点放在第一步而且不能只以一个变量去解决这个问题。因为这里面有彡盏灯就像数学里面的问题。有两个未知数自然需要两个变量去解方程。有了这个思路答案就呼之欲出了,灯除了发光还能发热,节能灯之类的在灯关掉之后,还会有一点点荧光这些都是解题的关键。所以我的答案是刚开始的时候,打开开关1等十分钟,关掉打开开关2,保持开关3的关闭状态进入房间里三盏灯三个开关,亮着的灯对应开关2暗着的灯里面,有微微荧光或者灯泡发热的灯对應开关1另外一盏对应开关3。至此就是我的全部思考过程和最终答案。大概历时一个钟
思考的过程是有趣的。欢迎大家共同讨论互楿关注,一起交流共同进步。
发布了40 篇原创文章 · 获赞 6 · 访问量 4万+