一道有趣的逻辑面试题(数独)

题目描述:

有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列,[水]放入第一列(宇航员有一个喝水的邻居这个条件是多余的),再根据宇航员住在饲养老虎的人旁边这一条件,可确定[老虎]只能放在第一列,那么[鲨鱼]只能放在最后剩下的最后一个空格,即第四列中。

颜色 黄色 蓝色 红色 绿色 白色
国籍 美国 印尼 英国 德国 荷兰
饮料 牛奶 咖啡 葡萄汁
工作 精算师 宇航员 记者 魔术师 邮递员
宠物 老虎 斑马 鹦鹉 鲨鱼 土豚

所以,答案是显然的:住在绿色房子里喜欢喝咖啡德国魔术师养了一条鲨鱼

原文地址:https://www.cnblogs.com/makesense/p/4512099.html