一個有趣的演算法題
阿新 • • 發佈:2019-01-29
今天看到一道很有意思的演算法面試題,因為之前很少研究演算法,好奇心加上暴躁的脾氣,就決定一定要幹掉這道題:
5個小姐站成一列 他們的姓不同 衣服顏色不同 和不同的飲料 樣不同的寵物 吃不同的水果 1錢小姐穿紅色的衣服, 2翁小姐養一隻狗, 3陳小姐喝茶。 4穿綠衣服的站在白衣服的左邊, 5綠衣服的再喝咖啡, 6中間的在喝牛奶, 7吃西瓜的養鳥, 8黃衣服的在吃梨, 9吃橘子的站在養貓的旁邊, 10養魚的旁邊是吃梨的 , 11吃蘋果的在喝香檳, 12江小姐在吃香蕉, 13趙小姐站在藍衣服的旁邊, 14喝白開水的站在吃橘子的旁邊, 15趙小姐站在最左邊。 問 哪個小姐養蛇?
中間的仨小時的思考時間略過…..
直接上答案: 江小姐養蛇。
思路:
先排列出能直接顯示的條件,然後一一推理。
根據 13趙小姐站在藍衣服的旁邊和15趙小姐站在最左邊以及6中間的在喝牛奶
得出此圖2.根據4穿綠衣服的站在白衣服的左邊和5綠衣服的再喝咖啡,再結合上圖,前者可以推出綠衣服只能在第三或第四縱列,後者推出,綠衣服喝咖啡只能在第四縱列。如圖
而1告訴我們錢小姐穿紅色的衣服,所以第三縱列是錢小姐,紅色衣服,而最後的黃色則是趙小姐的衣服顏色。
接著根據8黃衣服的在吃梨和10養魚的旁邊是吃梨的 推出如下
基本上,大部分的人都能推到這裡。但是接下來,從表面上看,剩下的資訊似乎都沒有什麼大的價值。
但是仔細看其它條件 一一列出如下:
推測:
翁小姐要麼在第四縱列 ,要麼在第五縱列。
假設翁小姐在第四列:陳小姐肯定不能在第二列,因為如果陳小姐在第二列,則第五列就是江小姐了,如果第五列是江小姐,那香檳和蘋果的條件就無法在任何一列滿足了。
但是,如果陳小姐在第五列,江小姐在第二列,香檳和蘋果的條件仍然無法滿足。
因此,我們的推理是錯誤的,翁小姐不在第四列。
如果翁小姐在第五列:
陳小姐無疑 肯定在第三列
第四列就只能是江小姐了
而香檳和蘋果只能在第五列了
剩下的白開水只能在第一列了
鳥和西瓜只能在第三列了
剩下最後兩個條件:14喝白開水的站在吃橘子的旁邊 和9吃橘子的站在養貓的旁邊
推出:橘子在第二列,貓在第一列,剩下江小姐 就剩下蛇了哦