首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

看到的一个有关问题,挺敢兴趣的。大家一起来探讨下看有几个解法,(主要是思路)

2013-03-26 
看到的一个问题,挺敢兴趣的。大家一起来探讨下看有几个解法,(主要是思路)题目是: 1、 在一条街上,有5座房子,

看到的一个问题,挺敢兴趣的。大家一起来探讨下看有几个解法,(主要是思路)

题目是: 
1、 在一条街上,有5座房子,喷了5种颜色。 
2、 每个房里住着不同国籍的人 
3、 每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物 

约束条件: 
1、 英国人住红色房子 
2、 瑞典人养狗 
3、 丹麦人喝茶 
4、 绿色房子在白色房子左面 
5、 绿色房子主人喝咖啡 
6、 抽Pall Mall 香烟的人养鸟 
7、 黄色房子主人抽、Dunhill 香烟 
8、 住在中间房子的人喝牛奶 
9、 挪威人住第一间房 
10、抽Blends香烟的人住在养猫的人隔壁 
11、养马的人住抽Dunhill 香烟的人隔壁 
12、抽Blue Master的人喝啤酒 
13、德国人抽Prince香烟 
14、挪威人住蓝色房子隔壁 
15、抽Blends香烟的人有一个喝水的邻居 

问题是:谁养鱼?


[解决办法]
house结构(index,color,nation,drink,cigar,pet)

约束条件:
assert(findByNation('British')==findByColor('red'))
...
assert(findByColor('green')+1==findByColor('white'))
...
assert(abs(findByCigar('Blends')-findByPet('cat')==1)

笨方法:暴力全排列,一个一个试约束条件,全部满足后再找养鱼的是谁
[解决办法]
200个聪明人的逻辑思维游戏.最具挑战和智慧的逻辑思维谜题.[陈书凯编著]
建议楼主看一下这本书。
[解决办法]
可以转为覆盖问题。

热点排行