《算法的乐趣》8.爱因斯坦的思考题------python

题目描述

据说有五个不同颜色的房间排成一排,每个房间里分别住着一个不同国籍的人,每个人都喝一种特定品牌的饮料,抽一种特定品牌的烟,养一种宠物,没有任意两个人抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物。

问题是谁在养鱼作为宠物?为了寻找答案,爱因斯坦给出了以下 15 条线索。

1.英国人住在红色的房子里;
2.瑞典人养狗作为宠物;
3.丹麦人喝茶;
4.绿房子紧挨着白房子,在白房子的左边;
5.绿房子的主人喝咖啡;
6.抽 Pall Mall 牌香烟的人养鸟;
7.黄色房子里的人抽 Dunhill 牌香烟;
8.住在中间那个房子里的人喝牛奶;
9.挪威人住在第一个房子里面;
10.抽 Blends 牌香烟的人和养猫的人相邻;
11.养马的人和抽 Dunhill 牌香烟的人相邻;
12.抽 BlueMaster 牌香烟的人喝啤酒;
13.德国人抽 Prince 牌香烟;
14.挪威人和住在蓝房子的人相邻;
15.抽 Blends 牌香烟的人和喝矿泉水的人相邻。

基本模型的定义

将每种类型的位置固定,直接利用数据下标进行访问

线索模型的定义

第一类:描述某些属性之间具有固定绑定关系的线索。1 2 3 5 6 7 12 13
第二类:描述某些属性类型所在的组所具有的相邻关系的线索。10 11 14 15
第三类:不能描述属性之间固定关系或关系比较弱的线索。

穷举所有结果

将第三类线索融入进去,进行枚举

利用线索来对结果进行判定
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值