逻辑谜题

斑马谜题——被称作“爱因斯坦谜题”的 15 条线索推理

斑马谜题——被称作“爱因斯坦谜题”的 15 条线索推理

大家好,我是 Senko。 本文将解读推理谜题的金字塔“斑马谜题”

五栋房子排成一排,住户的国籍、房子的颜色、饮料、香烟牌子、宠物全都各不相同。给你的只有“英国人住红房子”这类零碎线索 15 条。要从中查明的是“谁在喝水,谁养着斑马”。它以“爱因斯坦少年时代所作,还说世上 98% 的人解不出”的名头传遍全球,可其实这个传说本身,就是谜题里埋的另一个谜。

图解

斑马谜题是什么

斑马谜题(英语 zebra puzzle),是仅凭给定条件,用消去法把多个属性的组合唯一确定下来的推理谜题代表。1962 年登在杂志上的原典规则如下。

  • 五栋房子横排成一列,各自颜色不同
  • 住户的国籍、饮料、香烟牌子、宠物全都不同
  • 以下 15 条线索全部成立
  1. 英国人住在红房子里
  2. 西班牙人养狗
  3. 绿房子的住户喝咖啡
  4. 乌克兰人喝红茶
  5. 绿房子紧挨着象牙白房子的右边
  6. 抽老金的人养蜗牛
  7. 黄房子的住户抽库尔
  8. 正中间那栋的住户喝牛奶
  9. 挪威人住最左边那栋
  10. 抽切斯特菲尔德的人住在养狐狸的人隔壁
  11. 抽库尔的人的隔壁养马
  12. 抽好彩的人喝橙汁
  13. 日本人抽百乐门
  14. 挪威人住在蓝房子隔壁
  15. 那么问题来了。谁在喝水?谁养着斑马?

您注意到狡猾之处了吗。线索当中,水和斑马一次也没出现过。用 14 条条件把其余全部项目定死,最后剩下的那个空格,才是答案的座位。

1962 年《生活》杂志上的原典与作者传说

这道谜题的初出很清楚,是1962 年 12 月 17 日号的《生活》国际版杂志。读者的解答蜂拥而至,次年 1963 年 3 月号上公布了正解与答对者名单。上面列的 15 条线索,基本就是这一版的直译。

另一方面,网上流传的“爱因斯坦少年时代所构思”“世上 98% 的人解不出”这类说法,找不到任何佐证。说是刘易斯·卡罗尔所作的说法也一样。况且《生活》版里出现的香烟牌子都是 1960 年代在美国售卖的商品,与 1955 年去世的爱因斯坦的少年时代对不上。

也就是说,“98% 的人解不出”这句煽动语,是为了让谜题显得有魅力而后加的演出。话虽如此,谜题本身的做工是超一流的,就算扣掉这块假招牌,它至今仍在被全世界的人解着。

画表格,从确定的信息开始填

斑马谜题的解法基本只有一种:做一张以房子位置 1~5 为列、以属性(颜色、国籍、饮料、香烟、宠物)为行的表格,从确定的项目开始填。跟一遍开局的流程。

首先能立刻定下两项。由 8 知第 3 栋的饮料是牛奶,由 9 知第 1 栋是挪威人。于是由 14,挪威人隔壁的蓝房子确定为第 2 栋

接着用 5。绿在象牙白紧右边,所以是(象牙白、绿)这一对。第 2 栋是蓝,所以候选是第 3、4 栋或第 4、5 栋。若绿是第 3 栋,按 3 就该喝咖啡,可第 3 栋是牛奶,矛盾。于是象牙白是第 4 栋,绿是第 5 栋。再看 1,英国人住红房子,可第 1 栋是挪威人,所以红不是第 1 栋,剩下的第 3 栋是红,第 1 栋是黄就定了。由 7,第 1 栋的住户抽库尔;由 11,其隔壁的第 2 栋养马——就这样顺藤摸瓜下去。

像这样反复“确定→用它去确定下一个”的连锁,与“若是这里就会矛盾,所以划掉”的消去法,表格最终会被填成唯一的一种。答案是:喝水的是第 1 栋的挪威人,养斑马的是第 5 栋的日本人

房子颜色国籍饮料香烟宠物
第 1 栋挪威库尔狐狸
第 2 栋乌克兰红茶切斯特菲尔德
第 3 栋英国牛奶老金蜗牛
第 4 栋象牙白西班牙橙汁好彩
第 5 栋绿日本咖啡百乐门斑马

用 15 条条件把 249 亿种收成 1 种

这道谜题的厉害,一数数字就看出来了。五个属性各自的排法是 5 的阶乘即 120 种。整体组合是 120 的 5 次方,高达约 249 亿种。而区区 15 条条件,不多不少地把它收成了 1 种。少一条答案就会变成多个,多一条就会出现冗余。信息量被调到刚刚好,让解唯一确定——这就是它被称为名作的理由。

而这个结构,在计算机科学里正是被称为约束满足问题的重要研究对象本身。给变量(各房子的属性)赋值,寻找满足全部约束的组合。斑马谜题是求解约束满足的程序的标配基准测试,在 AI 教科书和被称为约束求解器的软件教程里反复出现。

我们在表格上做的“从确定信息里削减候选”操作叫约束传播,“先假设是这里,矛盾就退回”的操作叫回溯搜索,这两样正是现代求解器实际在用的基本技术。数独、数织之类的纸笔谜题,也都是同一个约束满足家族的成员。得知自己脑子里做的消去法有个正经名字,是不是有点开心?

实务本来就是由消去法谜题组成的

斑马谜题磨练出的技术,可以直接当实务的工具用。

首先是故障排查与调试“既然出了这条日志,网络就是活的”“这个操作不复现,所以不是数据引起的”——这种切分正是从线索里划掉候选的作业,光在脑子里做必定会漏。就像解谜时画表格一样,“做一张‘候选×已查明事实’的表逐个排除”才靠谱。

其次是排班与分配的问题。排班表的制作、会议室的分配、课程表的编排,正是约束满足问题的实务版,现实中就是用约束求解器解的。从“老王周二不行”“这两人不能分到同一组”这类条件的集合里找解,其结构与五栋房子毫无二致。

还有一点很要紧,就是条件加太多会导致无解这份感觉。斑马谜题的 15 条条件绝妙地彼此兼容,可现实的需求定义里,堆起来的条件互相矛盾而变成“无解”是常事。连“放宽哪条条件才能生出解”这道找法一起算进去,实务就是一道消去法的谜题。

爱因斯坦传说与解法的疑问

真的是爱因斯坦做的吗

如前所述,没有佐证爱因斯坦所作的证据,能确认的初出是 1962 年的《生活》杂志。出现的香烟牌子是 1960 年代的商品,这一点也表明它是后世之作。“98% 的人解不出”这个数字同样没有出处。不过这类攀附权威的传说,很好地体现了“冠上天才的名字,问题就显得有魅力”这种人的心理,作为本站解读过的“对权威没抵抗力”(光环效应)的实例,我觉得也是有趣的素材。

不靠猜着假设,纯用消去法能解开吗

开局到中盘照本文那样只靠确定的连锁就能推进,可到了终盘,会出现用“如果这栋是这个”的假设去找矛盾的场面。不过这不是靠猜或瞎蒙,而是分情况讨论、用矛盾把其中一边否决掉这样正经的逻辑操作。它与数学的反证法是同一个东西,倒不如说,不怕假设与否决,才是这类谜题进步的关键。

它和数独有什么不同

两者都是约束满足问题,但约束的种类不同。数独的约束只有“同一行、同一列、同一宫里不能放相同数字”这一种,可以说是纯培养的问题。而斑马谜题的约束种类丰富,有“若 A 则 B”“A 在 B 隔壁”“A 紧挨 B 的右边”等等,考的是条件句的读解与逻辑的翻译。如果说数独是计算练习册,斑马谜题就可以说是应用题。

相关的逻辑谜题与谜题

靠分情况讨论与否决矛盾来揭穿身份的“天堂与地狱的守门人”、把他人视角的消去法练到极致的“蓝眼睛岛”,以及处理只收集对自己有利线索之心理的“确认偏误”

结语

本文解读了“斑马谜题”。

249 亿种可能,仅凭 15 句不起眼的话就被折叠成 1 种。解完那一刻的畅快,在推理谜题里也属别格。而画表格、从确定处填起、用矛盾砍掉分支这套解法,同时也是现实问题解决中每天都在用的技术的原型——从故障切分一直到排班表的制作。

爱因斯坦所作这个传说是假的。可就算没有那块假招牌,这道谜题的内容也足以继续发光。还没有亲手解过的读者,请务必拿纸笔画着表挑战一次。

想返回逻辑谜题与概率谜题列表的读者请点击下方链接。

我们下一篇文章见。

逻辑谜题大全——从天堂地狱守门人到蓝眼睛岛共 10 题zh.senkohome.com/logic-puzzle-list/