- 英国人住在红色的房子里;
- 瑞典人养狗作为宠物;
- 丹麦人喝茶;
- 绿房子紧挨着白房子,在白房子的左边;
- 绿房子的主人喝咖啡;
- 抽Pall Mall牌香烟的人养鸟;
- 黄色房子里的人抽Dunhill牌香烟;
- 住在中间那个房子里的人喝牛奶;
- 挪威人住在第一个房子里面;
- 抽Blends牌香烟的人和养猫的人相邻;
- 养马的人和抽Dunhill牌香烟的人相邻;
- 抽BlueMaster牌香烟的人喝啤酒;
- 德国人抽Prince牌香烟;
- 挪威人和住在蓝房子的人相邻;
- 抽Blends牌香烟的人和喝矿泉水的人相邻。
根据8、9和14,第一眼能推出来:
房子颜色 |
| 篮 |
|
|
|
国籍 | 挪威 |
|
|
|
|
饮料 |
|
| 牛奶 |
|
|
宠物 |
|
|
|
|
|
香烟 |
|
|
|
|
|
1、4可以推出挪威人不是红、绿、白,所以挪威是黄,以及7和11得出:
房子颜色 | 黄 | 篮 |
|
|
|
国籍 | 挪威 |
|
|
|
|
饮料 |
|
| 牛奶 |
|
|
宠物 |
| 马 |
|
|
|
香烟 | Dunhill |
|
|
|
|
因为4和5知道剩下三个颜色的顺序只能是红绿白,以及1:
房子颜色 | 黄 | 篮 | 红 | 绿 | 白 |
国籍 | 挪威 |
| 英国 |
|
|
饮料 |
|
| 牛奶 | 咖啡 |
|
宠物 |
| 马 |
|
|
|
香烟 | Dunhill |
|
|
|
|
因为3和12,可以知道挪威人只能喝水,以及15得到:
房子颜色 | 黄 | 篮 | 红 | 绿 | 白 |
国籍 | 挪威 |
| 英国 |
|
|
饮料 | 水 |
| 牛奶 | 咖啡 |
|
宠物 |
| 马 |
|
|
|
香烟 | Dunhill | Blends |
|
|
|
因为3和12就可以知道丹麦人只能住蓝房子,至此蓝房子和饮料已经全部已知:
房子颜色 | 黄 | 篮 | 红 | 绿 | 白 |
国籍 | 挪威 | 丹麦 | 英国 |
|
|
饮料 | 水 | 茶 | 牛奶 | 咖啡 | 啤酒 |
宠物 |
| 马 |
|
|
|
香烟 | Dunhill | Blends |
|
| BlueMaster |
因为13知道所有香烟和德国人的房子,再配合6和10知道鸟和猫的情况,事实上已经快完整了:
房子颜色 | 黄 | 篮 | 红 | 绿 | 白 |
国籍 | 挪威 | 丹麦 | 英国 | 德国 | 瑞典 |
饮料 | 水 | 茶 | 牛奶 | 咖啡 | 啤酒 |
宠物 | 猫 | 马 | 鸟 |
|
|
香烟 | Dunhill | Blends | Pall Mall | Prince | BlueMaster |
最后根据2得到全部信息:
房子颜色 | 黄 | 篮 | 红 | 绿 | 白 |
国籍 | 挪威 | 丹麦 | 英国 | 德国 | 瑞典 |
饮料 | 水 | 茶 | 牛奶 | 咖啡 | 啤酒 |
宠物 | 猫 | 马 | 鸟 | 鱼 | 狗 |
香烟 | Dunhill | Blends | Pall Mall | Prince | BlueMaster |
如何用计算机解决这个问题呢?难点1是如何让计算机认识这些条件,难点2是得到解的算法。解完这道题后,觉得用遗传算法似乎不错,但是没细想,下次再说吧。
相关问题的博客:点击打开链接