一道有趣的逻辑面试题(数独)
题目描述:
有5座连续相邻的房子并且每个房子有不同的颜色:蓝色、绿色、红色、白色和黄色;每间房子的主人有不同的国籍:英国、印尼、德国、美国和荷兰;每个人喝不同的饮料:葡萄汁、咖啡、牛奶、茶和水;每个人有不同的工作:记者、邮递员、魔术师、宇航员和精算师;每个人饲养不同的宠物:老虎、斑马、鹦鹉、鲨鱼和土豚。
英国人住在红房子里,荷兰人饲养土豚,印尼人喝茶,绿色房子在白色房子的左边,绿色房子的主人喝咖啡,记者饲养鹦鹉,黄色房子的主人是一名精算师,住在正中央房子的人喝牛奶,美国住在第一间房子,宇航员住在饲养老虎的人旁边,养斑马的人住精算师的旁边,邮递员喝葡萄汁,德国人是一个魔术师,美国人住在蓝色房子的旁边,宇航员有一个喝水的邻居,请问谁拥有鲨鱼?
解题思路:
1.本人没玩过数独,看到这个题目,第一感觉就是使用穷举排除法:先画个表格(手工画表不如利用现成工具,当然首选Excel喽),把能确定的确定下来,不确定的逐个带入试验,毕竟5*5的样本不算大。表格展示如下:
表1-1.简单分析可确定如下位置
颜色 | 黄色 | 蓝色 | 红色 | 绿色 | 白色 |
国籍 | 美国 | 英国 | |||
饮料 | 牛奶 | 咖啡 | |||
工作 | 精算师 | ||||
宠物 | 斑马 |
表1-2.不确定位置但有关联的列
国籍 | 荷兰 | 印尼 | 德国 | ||
饮料 | 茶 | 葡萄汁 | |||
工作 | 记者 | 邮递员 | 魔术师 | ||
宠物 | 土豚 | 鹦鹉 |
表1-3.不确定位置且关联不确定的项
饮料 | 水 |
工作 | 宇航员 |
宠物 | 老虎,鲨鱼 |
2.将表1-2中的项按列代入表1-1中测试,会发现只有以下表格满足条件,再结合题目给的条件,将表1-3插入表格
分析:表1-2中,三个和国籍有关联的列只能插入2、4、5列中,[葡萄汁,邮递员]可以放在2、5列,若放在第2列则该列只有一个国籍没有确定,而含有国籍的三列均有关联项,所以[葡萄汁,邮递员]只能放在第5列,接着可以顺序确定[荷兰,土豚]只能放在第5列,[印尼,茶]只能放在第2列,[德国,魔术师]只能放在第4列,[记者,鹦鹉]只能放入第3列;表1-3中,只能将[宇航员]放入第2列,[水]放入第一列(宇航员有一个喝水的邻居这个条件是多余的),再根据宇航员住在饲养老虎的人旁边这一条件,可确定[老虎]只能放在第一列,那么[鲨鱼]只能放在最后剩下的最后一个空格,即第四列中。
颜色 | 黄色 | 蓝色 | 红色 | 绿色 | 白色 |
国籍 | 美国 | 印尼 | 英国 | 德国 | 荷兰 |
饮料 | 水 | 茶 | 牛奶 | 咖啡 | 葡萄汁 |
工作 | 精算师 | 宇航员 | 记者 | 魔术师 | 邮递员 |
宠物 | 老虎 | 斑马 | 鹦鹉 | 鲨鱼 | 土豚 |
所以,答案是显然的:住在绿色房子里喜欢喝咖啡的德国魔术师养了一条鲨鱼!