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


    题目描述:

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

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

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

  • 相关阅读:
    mysql主从复制读写分离的配置方法详解
    JS如何给ul下的所有li绑定点击事件,点击使其弹出下标和内容
    C#中的参数和调用方式(可选参数、具名参数、可空参数)
    关于HTML5的data-*自定义属性的总结
    在Java代码中解析html,获取其中的值方法
    Java面向对象之成员隐藏与属性封装操作示例
    《设计原本》读书笔记03
    java双重检查锁定的实现代码
    微信公众号开发之设置自定义菜单实例代码【java版】
    深入学习Redis(3):主从复制
  • 原文地址:https://www.cnblogs.com/makesense/p/4512099.html
Copyright © 2020-2023  润新知