第六百五十七章 康威两个巫师的谜语
作者:蔡泽禹   数学心最新章节     
    20世纪60年代,康威设计了一个极其棘手的谜题,直到最近才引发了很多讨论,2013年,麻省理工学院的塔尼亚·霍瓦诺娃发表了一篇论文。以下是那篇论文中出现的谜题:

    昨天晚上,我在一辆公共汽车上坐在两个巫师后面,听到了下面的话:

    a:“我有正整数个数的孩子,他们的年龄是正整数,和是这辆车的车号,乘积是我自己的年龄。”

    b:“如果您把您的年龄和孩子的数目告诉我,也许我就能算出他们每个人的年龄了。”

    a:“不。”

    b:“啊哈!我终于知道你多大了!”

    公交车的车号是多少?

    当然,你必须假定巫师b知道公交车的车号。还要注意,巫师们可以非常年轻,也可以非常年老,巫师a很可能是两万岁的老人。

    下面是解题过程,我只能在程序的帮助下完全理解和验证。我不能重现所有的计算,但你可以相信我的话。

    让我们把巫师a的年龄记为a,把公交车车牌记为b,把巫师a的孩子数记为c。例如,假设车号为b=5。以下是孩子的数量、年龄分布和巫师a的年龄:

    c=5,年龄分别为1,1,1,1,1;因此a=1;

    c=4,年龄分别为1,1,1,2;因此a=2;

    c=3,年龄分别为1,1,3;因此a=3;

    c=3,年龄分别为1,2,2;因此a=4;

    c=2,年龄分别为1,4;因此a=4;

    c=2,年龄分别为2,3;因此a=6;

    c=1,年龄分别为5;因此a=5;

    在每种情况下,知道巫师a的年龄和孩子的数量表明后者可能的年龄。因为巫师a回答“不”,而巫师b知道车号,这意味着b不等于5。

    类似地,你可以通过逐个验算可能的车号来解决这个问题,找出那些可以知道巫师的年龄和他的孩子的数量,但不能知道每个孩子的年龄的车号(这个车号的属性标记为p)。计算b=1,2,3,…12(就像我们刚才对b=5所做的那样),结果表明b=12是拥有p的最小数。

    事实上,对于b=12和c=4,这四个孩子有两组可能的年龄——(2,2,2,6)和(1,3,4,4),这两组给出巫师的年龄都是相同的:a=48。因此,对于b=12,即使知道c=4,a=48,也无法推断出这四个孩子的年龄。这是否意味着b=12是解?

    不幸的是,并不一定。对于车号b=13的情况,例如,这三个孩子的两组年龄——(1,6,6)和(2,2,9),a=36,巫师b不能从巫师a的年龄或他的孩子的数量得出他的孩子的年龄。

    知道b=12并不比知道b=13更能确定孩子的年龄。当面对这个谜题时,大多数人经常回答“b=12”,好像这个谜题在某种程度上暗示了b的最小可能解是正确的。但谜题并没有做出这样的断言。此外,如果没有进一步的推理,你无法在b=12和b=13之间进行选择,也无法在b的其他值之间进行选择,正如我进一步的计算所显示的那样。

    然而b=12才是正确答案,其原因是这个谜题中最有趣和最意想不到的部分。康威精心设计了他的谜题,你必须考虑巫师b的最后陈述,在巫师a的“不”之后,巫师b回答说,“啊哈!我终于知道你多大了!”这样就排除了b=13。

    事实上,对于b=13,有两个额外的年龄集——(1,2,2,2,6)和(1,1,3,4,4),可以得出a=48。换句话说,如果车号是13,巫师b不能从他的否定答案中推断出巫师a的年龄,因为他的年龄可以是36或48。因此,应该排除b=13。

    然而,当我们考虑b=13的年龄序列并加上1时,消去b=13就会排除b=14。这样做表明,儿童的年龄集——(1,1,6,6)和(1,2,2,9)——的乘积是a=36,而另两个年龄集——(1,1,2,2,6)和(1,1,1,3,4,4)——的乘积是a=48。同样可以排除b=15,并且一个接一个地排除了所有大于12的b。

    因此,只有车号12(b=12)以及两个年龄集(2,2,2,6)和(1,3,4,4)唯一决定了巫师a的年龄:a=48。

    我承认我不明白康威是如何想出这个令人难以置信的谜题的!