據說有五個不同顏色的房間排成一排,每個房間裡分別住著乙個不同國籍的人,每個人都喝一種特定品牌的飲料,抽一種特定品牌的煙,養一種寵物,沒有任意兩個人抽相同品牌的香菸,或喝相同品牌的飲料,或養相同的寵物。
問題是誰在養魚作為寵物?為了尋找答案,愛因斯坦給出了以下 15 條線索。
英國人住在紅色的房子裡;
瑞典人養狗作為寵物;
丹麥人喝茶;
綠房子在白房子的左邊;
綠房子的主人喝咖啡;
抽 pall mall 牌香菸的人養鳥;
黃色房子裡的人抽 dunhill 牌香菸;
住在中間那個房子裡的人喝牛奶;
挪威人住在第乙個房子裡面;
抽 blends 牌香菸的人和養貓的人相鄰;
養馬的人和抽 dunhill 牌香菸的人相鄰;
抽 bluemaster 牌香菸的人喝啤酒;
德國人抽 prince 牌香菸;
挪威人和住在藍房子的人相鄰;
抽 blends 牌香菸的人和喝礦泉水的人相鄰。
答案在下面
解答:首先看8,9 可以得出第乙個是挪威人 第三個是喝牛奶
根據14 得出第二個是藍房子
根據4 ,並且第二個是藍色,且第三個喝的是牛奶得出第四個是綠房子,第五個是白房子
根據1且第乙個是挪威,第二個是藍房子,從而得出第三個是英國紅色,所以第乙個是黃色
至此,所有房子顏色推論完畢
根據5,7,11 得出第二個人養馬
根據10和15 可以得出二號就是抽blends的人且一號喝的是礦泉水,養的是貓
根據12得出5號就是抽bluemaster的人,所以只剩2號沒得喝,即得出2號喝茶丹麥人
至此,第一和二個人推論完畢。
根據13得出第四個就是德國人抽的是prince,由2得出第五個人就是瑞典養狗,第五個人完畢
根據6得出第三個抽pallmall養鳥,至此第三個人推論完畢,剩第四德國人,只剩魚,匹配
演算法系列之七 愛因斯坦的思考題(下)
checkgrouprelation 函式需要根據當前組group的位置進行適當的處理,如果當前組是第乙個組或最後乙個組,則group的相鄰組只有乙個,就是最靠近group的組,其它情況下group的相鄰組都是兩個。checkgrouprelation 函式的實現如下 162bool checkgr...
演算法系列之七 愛因斯坦的思考題(下)
checkgrouprelation 函式需要根據當前組group的位置進行適當的處理,如果當前組是第乙個組或最後乙個組,則group的相鄰組只有乙個,就是最靠近group的組,其它情況下group的相鄰組都是兩個。checkgrouprelation 函式的實現如下 162boolcheckgro...
演算法系列之七 愛因斯坦的思考題(下)
checkgrouprelation 函式需要根據當前組group的位置進行適當的處理,如果當前組是第乙個組或最後乙個組,則group的相鄰組只有乙個,就是最靠近group的組,其它情況下group的相鄰組都是兩個。checkgrouprelation 函式的實現如下 162bool checkgr...