有这样一道题:程序员
从前,有个小岛上只住着和尚。有些和尚的眼睛是红色的,而另外一些的则是褐色。红色眼睛的和尚受到诅咒,若是得知本身的眼睛是红色的,那么当晚12点必须自行了断。(由于受到诅咒,因此只要得知本身的眼睛是红色的,则必须选择自杀,无一例外。)” 和尚们之间有一条不成文的规定,彼此不能提起对方眼睛的颜色。小岛上没有一面镜子,也没有能够反射本身容貌的物体。所以,没有任何人可以得知本身眼睛的颜色。出于这些缘由,每一个和尚都过着幸福的日子,也没有一个和尚自杀。 有一天,岛上忽然来了一位游客,她对这个秘密并不知情。因而,这位游客对和尚们说: “大家当中,至少有一位的眼睛是红色的。” 这位无意的游客当天就离岛而去,而和尚们却因第一次听到有关眼睛颜色的话题而惴惴不安。当晚,小岛上开始出现了可怕的事情,到底是什么事呢?
先思考几秒钟。算法
其实这道题不是一道算法题,而更是一个计算机思惟考察题。编码
更多的时候是考察一个程序员在获得一个需求的时候是否能从多个角度去思考,同时挖掘出产品经理给出需求背后有没有他没有想到或者没有表达出来的隐性需求,同时能够全方位考虑这个系统设计出来有没有bug。设计
咱们能够假设若是和尚中没有一个红色眼睛的,这个结果会很恐怖,由于全部和尚看到其余和尚都是正常的,因此怀疑只有本身是红色的,因此晚上可能全部的和尚都自杀了。code
若是有一个红眼睛和尚,那么死的应该是他,道理同第一条,第一个红眼睛和尚死了以后,次日就太平了。产品
若是有两个和尚是红眼睛的,由于全部的和尚都最少看到一个红眼睛和尚,因此都不会自杀,可是次日晚上,全部和尚均可能会觉得红眼睛和尚没有自杀的缘由是本身是另外的红眼睛和尚,有可能次日晚上全部的和尚都自杀,也有可能全部和尚都知道至少一个红眼睛和尚,反而都不会自杀。配置
。。。其余结果相似推导,可是咱们不会经过if/else方式将条件判断硬编码,须要抽离出一个对应配置平台服务。bug
因此这道题不是一道算法题,而是一道计算机思惟题,考察咱们可以用计算机角度去帮助产品需求作的更完善。反射