有這樣一道題:程序員
從前,有個小島上只住着和尚。有些和尚的眼睛是紅色的,而另外一些的則是褐色。紅色眼睛的和尚受到詛咒,若是得知本身的眼睛是紅色的,那麼當晚12點必須自行了斷。(由於受到詛咒,因此只要得知本身的眼睛是紅色的,則必須選擇自殺,無一例外。)」 和尚們之間有一條不成文的規定,彼此不能提起對方眼睛的顏色。小島上沒有一面鏡子,也沒有能夠反射本身容貌的物體。所以,沒有任何人可以得知本身眼睛的顏色。出於這些緣由,每一個和尚都過着幸福的日子,也沒有一個和尚自殺。 有一天,島上忽然來了一位遊客,她對這個祕密並不知情。因而,這位遊客對和尚們說: 「大家當中,至少有一位的眼睛是紅色的。」 這位無意的遊客當天就離島而去,而和尚們卻因第一次聽到有關眼睛顏色的話題而惴惴不安。當晚,小島上開始出現了可怕的事情,到底是什麼事呢?
先思考幾秒鐘。算法
其實這道題不是一道算法題,而更是一個計算機思惟考察題。編碼
更多的時候是考察一個程序員在獲得一個需求的時候是否能從多個角度去思考,同時挖掘出產品經理給出需求背後有沒有他沒有想到或者沒有表達出來的隱性需求,同時能夠全方位考慮這個系統設計出來有沒有bug。設計
咱們能夠假設若是和尚中沒有一個紅色眼睛的,這個結果會很恐怖,由於全部和尚看到其餘和尚都是正常的,因此懷疑只有本身是紅色的,因此晚上可能全部的和尚都自殺了。code
若是有一個紅眼睛和尚,那麼死的應該是他,道理同第一條,第一個紅眼睛和尚死了以後,次日就太平了。產品
若是有兩個和尚是紅眼睛的,由於全部的和尚都最少看到一個紅眼睛和尚,因此都不會自殺,可是次日晚上,全部和尚均可能會覺得紅眼睛和尚沒有自殺的緣由是本身是另外的紅眼睛和尚,有可能次日晚上全部的和尚都自殺,也有可能全部和尚都知道至少一個紅眼睛和尚,反而都不會自殺。配置
。。。其餘結果相似推導,可是咱們不會經過if/else方式將條件判斷硬編碼,須要抽離出一個對應配置平臺服務。bug
因此這道題不是一道算法題,而是一道計算機思惟題,考察咱們可以用計算機角度去幫助產品需求作的更完善。反射