问题
有 64 匹马,速度都不同,但每匹马的速度都是定值。每次只能 8 匹马进行比赛,每次比赛只能得到 8 匹马之间的快慢程度,而不是具体速度,即每赛一场最多只能知道 8 匹马的相对快慢。请问最少要比多少次才能获得最快的前 4 匹马 ?
解答
1.首先把 64 匹马随机分成 8 组,分别进行 8 次比赛,记录成绩。
2.再将每组第 1 名集合起来进行 1 次比赛。这是第 9 次比赛。
3.留下第 9 次比赛前四名的马所在的组。因为对于后 4 名的马所在的组来说,没有一匹有机会进入前四。
4.剩下的 4 组按照每组第 1 名在第 9 次比赛的成绩排序,这样按照判断原则,只剩下10匹马(如下)可能进入前 4,而第 1 组的第 1 名肯定是跑最快的马。
第一组: 1 2 3 4 第二组: 1 2 3 第三组: 1 2 第四组: 1
这样问题就变成 9 匹马找出前 3 快的。情况好的话跑 1 次可以得到,不行的话 2 次。
第一组: 2 3 4 第二组: 1 2 3 第三组: 1 2 第四组: 1
方案如下:
第一组:2 3 4
第二组:1 2 3
第三组:1 2
共 8 匹马进行比赛。
1)如果第三组的 1 为本轮第 2 名 (最多也是第 2 名,因为第二组的 1 比它快),则说明第二组的 1 为最终的第 2 名,第三组的 1 为最终的第 3 名。此时剩下 7 匹马再比一场决出最终的第 4 名,共 11 场。
2)如果第三组的 1 为本轮第 3 名,即最终的第 4 名,则说明第 4 组的 1 肯定不是最终的前 4 名。所以最终的 2、3、4 名为本场的 1、2、3 名。共 10 场。
3)如果第三组的 1 为本轮第 4 名及之后的,则说明第 4 组的 1 肯定不是最终的前 4 名。所以最终的 2、3、4 名为本场的 1、2、3 名。共 10 场。