最近,有小朋友问了我一个小学二年级的数学题,让我百思不得其解。大家看看,你能不能做出来:
9辆赛车的速度各不相同,它们要比快慢,但没有计时工具,只能在赛道上比谁先谁后,而且每次最多只能有3辆车比赛。那么,最少比几次,能保证选出最快的2辆赛车?
我做了好半天也没想出答案,于是我就咨询了我的学生507(此人毕业于北京大学数学系,以前也多次帮我解答数学问题,甚是厉害),她只花了3秒钟就告诉了我答案:5次。
5次是可行的
507的方法是这样的:
首先每三辆车一组,分成三组比小组赛。每个小组都能排出顺序。
然后,让三个小组的第一名进行一场决赛,就能选出真正的第一名。
这时,决赛中的第二名和总冠军在小组赛时的第二名,都是只输给了总冠军,它们俩谁快呢?还要比一下。谁赢了谁就是真正的第二名。所以,我们还需要一场附加赛。
算起来,3场小组赛,1场总决赛,1场附加赛。一共就是5场比赛啦!
4次为什么不行
当时,我在朋友圈里发了这个问题,许多同学都很快给出了5次的答案。不过,有两名国际金牌,一直在讨论为什么5次就是最少的,为什么4次就不行?
后来,507又告诉了一种方法,的确可以证明4次是不行的。她采用的是图论+反证法的方法。
首先,我们把问题理解为:需要从9辆车中,区分出冠军和亚军,我们认为这样理解题意是合理的,而且处理起来比较方便。如果你不区分冠军和亚军,问题可能会稍微复杂一些。
然后,把每一辆车看作一个点,用每一场比赛的结果进行连线,这样就构成了一个图。具体来说:比赛的过程就是给三辆车排序,如果我们把相邻成绩的两辆车用有向线段连接起来,一场比赛就会出现两条线。比如,在一次比赛中,汽车1最快,汽车2其次,汽车3最慢,那么它们之间的图应该是这样的:
如果举行4场比赛,最多能够画出8条线。为了找到冠军和亚军,这8条线必须把9个点连起来,形成一个单一的、树状的、没有闭环的图,比如下面这个样子:
可以判断出冠军和亚军
大家可以想想:如果图不是单一的,而是分成两支,那么就没办法判断谁才是真正的第一。
有两辆赛车可能是冠军,亚军也无法判断
如果图不是树状,而是中间存在闭环,那么就浪费了一条线,8条线绝不可能把9个点连接起来。
形成一个闭环,至少需要9根线才能把9个点连接起来
下面我们要论证:用8根线,不可能保证把9个点连成我们要求的图。
  • 首先:为了找到冠军,冠车和亚军车一定同场竞技过。因为,它们比其它车都快,如果它们没有比赛过,都会保持不败战绩,就无法区分出谁是冠军了。它们比赛时,冠军一定第一,亚军一定第二,所以冠军和亚军之间有连线。
  • 然后,为了找到亚军,亚军和季军一定同场竞技过。因为,除了冠军以外,这两辆车比其它车都要快。如果它们没有比赛过,就无法区分出谁是亚军。同样的道理,亚军和季军之间有连线。
冠军、亚军、季军之间一定有连线
  • 根据刚才所说,图中不能形成闭环,既然冠军和亚军之间、亚军和季军之间一定有连线,那么冠军和季军之间是不可以有连线的。可是你要注意:在我们进行第一场比赛时,随机选择了三辆车,如果选择的三辆车分别是冠军、季军和第四名,那么比赛后,根据我们的构造规则,冠军和季军分列小组第一和第二,它们之间会做出一条连线。这样,所有比赛结束后,冠军、亚军、季军就会出现一个闭环。
  • 大家注意:冠军和季军之间的这条线不是一定存在,闭环也不一定存在。但是由于最初我们缺乏信息,随机选择车辆比赛,我们不能保证冠军、季军和第四名不会碰在一起,我们也无法保证避免闭环的出现。而一旦出现闭环,就不可能用8条线把9个点连成一个单一的树状图,也就不能判断出冠军和亚军了。
整个的逻辑过程是这样的:
综上所述,8条线不能保证把9个点连成满足条件的图,所以4场比赛也不能保证从9辆车中找到冠军和亚军,5次比赛是最少情况。
你看,一个小学二年级问题,居然连图论和反证法都用上了。
还能再给力一点吗?
我们能让这个问题变得更加普遍一些吗?
比如:如果有n²辆车,每次比赛只有n辆车参赛,在没有计时工具的情况下,至少比赛多少次,才能保证找到第一名和第二名?
这个问题很简单,方法也是类似的,你可以思考一下再往下看。
首先进行小组赛:每场比赛n辆车,共有n场比赛。按照刚才的构造方法,我们能把每一小组的赛车排序,并且进行连线。
n场小组赛后,每一小组的顺序都排好了
然后,我们再让每场小组赛的第一名进行一场总决赛,找到冠军。
1场决赛后,冠军找到了
最后,冠军小组赛时的第二名和总决赛的第二名,再进行一场附加赛,找到亚军就好了。比如下面这种情况:
1场附加赛后,找到亚军
最终,我们通过n场小组赛、1场总决赛、1场附加赛,找到了冠军和亚军,一共需要n+2场比赛。
你能证明n+2是最少的情况吗?
方法和刚才一样:
  • 果只需要n+1场比赛,每一场比赛只能对n辆车排序,能连n-1条线,所以所有比赛一共能够连(n+1)(n-1)=n²-1条线。
  • 用n²-1条线,连接n²个点,找到冠亚军,必须画出一个单一、树状、无闭环的图。
  • 可是,根据9辆车时同样的道理,冠军、亚军、季军之间有可能出现闭环。
  • 所以,用n+1场比赛,无法保证找到冠亚军。n+2是问题的解。
这个小学二年级数学题,可能很多同学都能想到答案。只是要证明它,的确不是一件容易的事。而且,到目前为止,我们还没有找到这个问题的一般答案,如果你愿意的话,可以由浅入深的思考以下问题。事先声明,除了第一个问题我找到了答案,后面两个还没有思考出来。
问题1:如果有n辆车,每次比赛最多有n辆车,那么最少比赛多少次,才能保证找到冠军和亚军?
问题2:如果有n辆车,每次比赛最多m辆车(m<n),那么至少比赛多少次,才能保证找到冠军和亚军?
问题3:如果有n辆车,每次比赛最多m辆车(m<n),要确定前k辆车的排名(k<n),至少要比赛多少场?
如果你都想出来了,你至少达到了小学三年级水平。
END
往期推荐
继续阅读
阅读原文