谁养鱼(一):人工解法
- 英国人住在红色的房子里;
- 瑞典人养狗作为宠物;
- 丹麦人喝茶;
- 绿房子紧挨着白房子,在白房子的左边;
- 绿房子的主人喝咖啡;
- 抽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是得到解的算法。解完这道题后,觉得用遗传算法似乎不错,但是没细想,下次再说吧。
相关问题的博客:点击打开链接