斑马难题

最近看的《离散数学及其应用》一书中讲逻辑的章节里有爱因斯坦著名的斑马难题。以前曾多次见过,但终究没有静心去做。终于这段时间不知从哪突然冒出的决心好好学习,同时坚定地要把这个题目给做出来。

五个不同国家且工作各不相同的人分别住在一条街上的五所房子里,每所房子颜色不同,每个人都有自己养的不同的宠物,喜欢和不同的饮料。根据提示,判断哪所房子里的人养斑马,哪所房子里的人喜欢喝矿泉水。
提示:

  • 英国人住在红色的房子里;
  • 西班牙人养了一条狗;
  • 日本人是一个油漆工;
  • 意大利人喜欢喝茶;
  • 挪威人住在左边的第一个房子里;
  • 绿房子在白房子的右边;
  • 摄影师养了一只蜗牛;
  • 外交官住在黄房子里;
  • 中间房子里的那个人喜欢喝牛奶;
  • 喜欢喝咖啡的人住在绿房子里;
  • 挪威人住在蓝色的房子旁边;
  • 小提琴家喜欢喝橘子汁;
  • 养狐狸的人所住的房子与医师的房子相邻;
  • 养马的人所住的房子与外交官的房子相邻。

根据题目中的叙述,以不同房间的相互位置关系出发来解决问题将是一个最优选择。下面开始分析题目——

首先从可以确定房间位置关系的条件入手。

先分析下面这几个提示:

  1. 挪威人住在左边的第一个房子里
  2. 挪威人住在蓝色的房子旁边
  3. 中间房子里的那个人喜欢喝牛奶
  4. 绿房子在白房子的右边
  5. 英国人住在红色的房子里
  6. 外交官住在黄房子里
  7. 养马的人所住的房子与外交官的房子相邻

提示1提示2提示3可推知如图所示的结果。

又由提示4可知,绿房子和白房子相邻,因此这两间房子必定出现在右边三个相邻的未知房间中。再由提示5可知,红房子也一定在右边三个房间中。因此,挪威人住的是黄房子。再由提示6提示7,可推知如图结果。

至此,提示 1, 2, 3, 6, 7的内含已经被充分发掘,之后将不需再使用这几个提示。原来的提示只剩下:

  1. 英国人住在红色的房子里
  2. 西班牙人养了一条狗
  3. 日本人是一个油漆工
  4. 意大利人喜欢喝茶
  5. 绿房子在白房子的右边
  6. 摄影师养了一只蜗牛
  7. 喜欢喝咖啡的人住在绿房子里
  8. 小提琴家喜欢喝橘子汁
  9. 养狐狸的人所住的房子与医师的房子相邻

现在剩下的提示难以快速推演出确定的对应关系,下面使用先假设再推矛盾的方法。

提示5的可能情况比较简单,首先从该提示出发进行推断。先假设如图情形:

根据提示 1, 7, 4, 8,可推出

此时矛盾出现:由提示 2, 3, 6可知,它们都应出现在白色或绿色房间中,但这三个提示中的一定是三个不同的人。由此可知,之前对提示5的假设是错误的,因此正确的情况应该是

此时再根据提示 1, 7可知

我们再次清理一下没有进一步使用价值的信息:

  1. 西班牙人养了一条狗
  2. 日本人是一个油漆工
  3. 意大利人喜欢喝茶
  4. 摄影师养了一只蜗牛
  5. 小提琴家喜欢喝橘子汁
  6. 养狐狸的人所住的房子与医师的房子相邻

此时,提示 1, 3, 5都有两种假设可能。我们对提示5进行假设

提示 3, 2可知

此时提示1中的西班牙人无位置可放。因此之前对提示5的假设是错误的,正确情况应当是

再由提示 3, 2, 1, 4, 6可以填出完整表格。

再结合题目中的问题,可以将表格填充完整。

添加新评论