一个爱因斯坦出的数学逻辑推理题,说世界上有98%得人答不出

1有五栋五种颜色的房子; 2每一位房子的主人国籍都不同 3这五个人没人只喝一个牌子的饮料,只抽一个牌子的香烟,只养一种宠物; 没有人有相同的宠物,抽相同牌子的香烟,喝相同的饮料. 已知: 1英国人住在红房子里 2瑞典人养了一只狗 3丹麦人喝茶 4绿房子在白房子左边 5绿房子主人喝咖啡 6抽PALL MALL烟的人养了一只鸟 7黄房子主人抽DUNHILL烟 8住在中间那房子的人喝牛奶 9挪威人住在第一间房子的人喝牛奶 10抽混合烟的人住在养猫人的旁边 11养马人住在抽DUNHILL烟的人旁边 12抽BLUE MASTER烟的人喝啤酒 13德国人抽PRINCE烟 14挪威人住在蓝房子旁边 15抽混合烟的人的邻居喝矿泉水求证: 谁养鱼? 请大家写出过程谢谢了

转:这是爱因斯坦出的一道测试题,考的是逻辑能力,试一试。

前提
1 有五栋五种颜色的房子
2 每一位房子的主人国籍都不同
3 这五个人每人只喝一种饮料,只抽一种牌子的香烟,只养一种宠物
4 没有人有相同的宠物,抽相同牌子的香烟,喝相同的饮料

提示:

9 挪威人住第一间房子
14 挪威人住在蓝房子旁边
8 住在中间那间房子的人喝牛奶

1 英国人住在红房子里
2 瑞典人养了一条狗
3 丹麦人喝茶
5 绿房子主人喝咖啡
6 抽 PALL MALL 烟的人养了一只鸟
7 黄房子主人抽 DUNHILL 烟
12 抽 BLUE MASTER 烟的人喝啤酒
13 德国人抽 PRINCE 烟

4 绿房子在白房子左边
11 养马人住在 DUNHILL 烟的人旁边
10 抽混合烟的人住在养猫人的旁边
15 抽混合烟的人的邻居喝矿泉水

问题: 谁养鱼 从以下五个选项中选择。
(1)瑞典人 (2)英国人 (3)挪威人 (4)德国人 (5)丹麦人
爱因斯坦出这道题时认为只有2% 的人能答出,:-)

答案:
黄 蓝 红 绿 白
挪威 丹麦 英 德 瑞典
水 茶 牛奶 咖啡 啤酒
DUNHILL 混合烟 PALL MALL PRINCE BLUE MASTER
猫 马 鸟 鱼 狗

关于算法探讨:
我们常见的一些经典算法的解大多数是采用数组来存储数据单元,我想能不能采用面向对象的方法来解这一题目呢?我的想法是:

对象--房子
房子--属性:
{ 房子编号(或房子位置),
房子颜色,
房子主人的国籍,
香烟的牌子,
喝的饮料,
养的宠物,
左邻是谁,
右邻是谁
} 房子

原题目的15条提示:

1 英国人住在红房子里
2 瑞典人养了一条狗
3 丹麦人喝茶
4 绿房子在白房子左边
5 绿房子主人喝咖啡
6 抽 PALL MALL 烟的人养了一只鸟
7 黄房子主人抽 DUNHILL 烟
8 住在中间那间房子的人喝牛奶
9 挪威人住第一间房子
10 抽混合烟的人住在养猫人的旁边
11 养马人住在 DUNHILL 烟的人旁边
12 抽 BLUE MASTER 烟的人喝啤酒
13 德国人抽 PRINCE 烟
14 挪威人住在蓝房子旁边
15 抽混合烟的人的邻居喝矿泉水

从15条提示得如下处理优先顺序:

以下3个提示房子位置是肯定的:(第1组分类)
9 挪威人住第一间房子
14 挪威人住在蓝房子旁边
8 住在中间那间房子的人喝牛奶

以下8个提示房子的属性是肯定的:(第2组分类)
1 英国人住在红房子里
2 瑞典人养了一条狗
3 丹麦人喝茶
5 绿房子主人喝咖啡
6 抽 PALL MALL 烟的人养了一只鸟
7 黄房子主人抽 DUNHILL 烟
12 抽 BLUE MASTER 烟的人喝啤酒
13 德国人抽 PRINCE 烟

剩下4个提示是描述房子位置之间的关系:(第3组分类)
4 绿房子在白房子左边
11 养马人住在 DUNHILL 烟的人旁边
10 抽混合烟的人住在养猫人的旁边
15 抽混合烟的人的邻居喝矿泉水

根据以上提示的第1组分类得以下确定的对象:

房子1 { 房子编号=1, (根据提示9 挪威人住第一间房子)
房子颜色=?, (?是未知)
房子主人的国籍=挪威人,(根据提示9 挪威人住第一间房子)
香烟的牌子=?,
喝的饮料=?,
养的宠物=?,
左邻是谁=0, (由于挪威人住第一间房子,所以没左邻)
右邻是谁=2 (根据提示14 挪威人住在蓝房子旁边)
}

房子2 { 房子编号=2, (根据提示14 挪威人住在蓝房子旁边)
房子颜色=蓝色, (根据提示14 挪威人住在蓝房子旁边)
房子主人的国籍=?,
香烟的牌子=?,
喝的饮料=?,
养的宠物=?,
左邻是谁=1, (根据提示14 挪威人住在蓝房子旁边)
右邻是谁=3 (根据提示14 挪威人住在蓝房子旁边)
}

房子3 { 房子编号=3, (根据提示8 住在中间那间房子的人喝牛奶)
房子颜色=?,
房子主人的国籍=?,
香烟的牌子=?,
喝的饮料=牛奶, (根据提示8 住在中间那间房子的人喝牛奶)
养的宠物=?,
左邻是谁=2, (根据提示8 住在中间那间房子的人喝牛奶)
右邻是谁=4 (根据提示8 住在中间那间房子的人喝牛奶)
}

下面是根据8个提示房子的属性(第2组分类)的到8个未知房子编号的属性:

房子? { 房子编号=?,
房子颜色=红色, (根据提示1 英国人住在红房子里)
房子主人的国籍=英国, (根据提示1 英国人住在红房子里)
香烟的牌子=?,
喝的饮料=?,
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=瑞典, (根据提示2 瑞典人养了一条狗)
香烟的牌子=?,
喝的饮料=?,
养的宠物=狗, (根据提示2 瑞典人养了一条狗)
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=丹麦, (根据提示3 丹麦人喝茶)
香烟的牌子=?,
喝的饮料=茶, (根据提示3 丹麦人喝茶)
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=绿色, (根据提示5 绿房子主人喝咖啡)
房子主人的国籍=?,
香烟的牌子=?,
喝的饮料=咖啡, (根据提示5 绿房子主人喝咖啡)
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=?,
香烟的牌子=PALL MALL 烟,(根据提示6 抽 PALL MALL 烟的人养了一只鸟)
喝的饮料=?,
养的宠物=鸟, (根据提示6 抽 PALL MALL 烟的人养了一只鸟)
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=黄, (根据提示7 黄房子主人抽 DUNHILL 烟)
房子主人的国籍=?,
香烟的牌子=DUNHILL 烟,(根据提示7 黄房子主人抽 DUNHILL 烟)
喝的饮料=?,
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=?,
香烟的牌子=BLUE MASTER 烟,(根据提示12 抽 BLUE MASTER 烟的人喝啤酒)
喝的饮料=啤酒, (根据提示12 抽 BLUE MASTER 烟的人喝啤酒)
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=德国, (根据提示13 德国人抽 PRINCE 烟)
香烟的牌子=PRINCE 烟,(根据提示13 德国人抽 PRINCE 烟)
喝的饮料=?,
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

下面是根据4个提示房子的属性(第3组分类)的到4个未知房子编号的属性(是最难描述属性的):

房子? { 房子编号=?,
房子颜色=绿, (根据提示4 绿房子在白房子左边)
房子主人的国籍=?,
香烟的牌子=?,
喝的饮料=?,
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=?,
香烟的牌子=?,
喝的饮料=?,
养的宠物=马, (根据提示11 养马人住在 DUNHILL 烟的人旁边)
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=?,
香烟的牌子=混合烟,(根据提示10 抽混合烟的人住在养猫人的旁边)
喝的饮料=?,
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

房子? { 房子编号=?,
房子颜色=?,
房子主人的国籍=?,
香烟的牌子=?,
喝的饮料=矿泉水,(根据提示15 抽混合烟的人的邻居喝矿泉水)
养的宠物=?,
左邻是谁=?,
右邻是谁=?
}

最后是根据第2、3组分类属性代入已知的第1组分类属性中,由于我的面向对象了解不深,具体操作是怎样呢?敬请批评指正?多谢你竟然有耐性看到了这里:-)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-10
思路:
根据提示9和提示14可知蓝房子是第二间房子;
根据提示5和提示8可知绿房子不是中间的房子,再根据提示4推理出绿房子是第四间房子,白房子是第五间房子;
根据提示1和提示9可推理出红房子是第三间房子,那么第一间房子是黄房子;
5间房子的顺序为黄、蓝、红、绿、白

已知提示3丹麦人喝茶,根据提示8可知英国人喝牛奶;
根据提示7可知挪威人抽DUNHILL烟,再根据提示12可知挪威人不喝啤酒,又由于挪威人住第一间房,不喝咖啡,所以挪威人肯定喝矿泉水;
根据提示12和提示13可以推理出德国人不喝啤酒,肯定是咖啡,德国人住第四间房;
饮料仅剩啤酒,所以瑞典人喝啤酒,再根据提示12可知瑞典人抽BLUE MASTER烟;
挪威人抽DUNHILL烟喝矿泉水,根据提示11和提示15可知养马人住第二间房抽混合烟;
英国人住第三间房,不是抽混合烟,肯定是抽PALL MALL烟,再根据提示6可知英国人养鸟;
根据提示10,住第二间房的人抽混合烟,住第三间房的英国人养鸟,所以住第一件房的挪威人养猫;
德国人在第四间房,根据提示2,那么养鱼的是德国人;

最终结果为:
黄房子 挪威人 矿泉水 猫 DUNHILL烟
蓝房子 丹麦人 茶 马 混合烟
红房子 英国人 牛奶 鸟 PALL MALL烟
绿房子 德国人 咖啡 鱼 PRINCE烟
白房子 瑞典人 啤酒 狗 BLUE MASTER烟
第2个回答  2012-03-10
挪威 丹麦 英国 德国 美国

黄色 蓝色 红色 绿色 白色

矿泉水 茶 牛奶 咖啡 啤酒

VISION烟 BLENDS烟 登喜路烟 PRINCE烟 555烟

猫 马 鸟 ( 鱼 ) 狗

列出5个文本框,自己慢慢的填,我用了20分钟。本回答被网友采纳
第3个回答  2021-04-13

第4个回答  2012-03-10
碉堡了
相似回答