赛马问题

Posted by 甘家城 on 2017-04-21 Viewed times

问题:有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前5名?

写下一些个人思路。

先把25匹马分成5组,每组5匹马,跑五次。得到五次的结果。

在把5次都跑第一名的马拿出来跑一次。

然后分别标上如下图序号。箭头方向表示由慢到快。

此时可以得到11是其中跑得最快的,由于要选5匹,故可以去掉一些已经评不上的。

考虑特殊情况,要次数最少的话就得碰运气,第七次跑51,12,13,14,15或者15,21,31,41,51。如果51或者15赢了就可以得到最快的五匹马。

考虑一般情况的话,再分析图,12,21至少有一个需要选。13,22,31至少有一个需要选。所以第七次上面五匹马跑一次。

之后分类讨论,主要考虑前两名。

如果12,21是前两名,则他们为总的第二三名,由于13,22,31也至少选一个,所以其中一个最快的是总的第四名。总的还差一匹马,第八次就跑13,22,31中的另外两个加上总第四名那匹马的右边和下面两匹马。第八次跑最快的就是总的第五名。得到最快5匹马。

如果前两名是12,21中的一个加上13,22,31中的一个。则第八次跑的马为上面剩下的三个加上13,22,31种最快那匹的右边和下面那两匹马。这里得到的结果又可以分类讨论,方法和上面差不多,最差的情况也可以选出总的第四快的马。

再跑第九次,选出第五快的马。

结论:碰运气跑最快7次,一般情况跑最快8次,最慢9次。


版权声明:本文为原创文章,转载请注明出处和作者,不得用于商业用途,请遵守 CC BY-NC-SA 4.0协议。

支付宝打赏 微信打赏

赞赏一下