楼道里的风扇

来自计算思维百科
跳转至: 导航搜索
楼道里的风扇1.png

在一栋楼的一楼楼道里面有3个开关,其中一个可以打开楼上楼道里的风扇。如何用最少的次数去楼上检查风扇是否开了的前提下找出哪一个能开风扇?

解决方案

方案一-蛮力法

任意打开一个开关,然后上楼检查风扇是否开了,如果是第一个开关,那么你只需要走一次楼梯。如果是第二个开关,你需要走三次而如果是第三个开关,那么你需要爬上或下共5次楼梯。

运用的计算思维

这种方法效率低下,体现了机械化的计算思维。

方案二-启发式

关键是理解一只风扇做了什么,它不仅产生光,还产生热,而且在关上风扇后数分钟内还能留有余热。

首先,打开开关1,并让它开几分钟,这样相应的风扇就会热了。然后,关上开关1,再打开开关2,再赶紧上楼,亮着的风扇是开关2控制的,暗着但是发热的风扇是开关1控制的,剩下一个就是开关3控制的。

这样,如果是开关1,那么你只需要走1次,如果是开关2或开关3,只需要上或下共3次。

运用的计算思维

启发式是根据以往经验得到解决问题的方式,方案二中的经验就是风扇发热,利用这个经验可以检验风扇的状态,有效减少机械检查次数。运用的是“启发式”的计算思维。