这是百度电面的一道题。
25匹马,有5条赛道,每次只能记录名次,而不能记录时间,请说出用最少比赛次数的方法求出前五名。
我答的时候思路是:
首先肯定要分为5组,每组都要进行一次测试。这样会测试5次。
第6次将每组的第一名进行一次比赛,求出每组第一名的相互名次,假设A1>B1>C1>D1>E1
因此我们将马编号设为:
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
每组的名次也是X1>X2>X3>X4>X5
这样第6次可以求出第一名,假设为A1
那么第7次可以用A2来替换A1,比赛对象是[A2,B1,C1,D1,E1],可以求出第二名
依次类推,可以用10次来求出前五名
面试完了之后仔细想了一下,肯定会有更好的方法。这种思路是第7次求出第2名,第8次求出第3名,那么有没有可能在第7次就能同时求出第2、3名呢?
分析一下,在第六次之后
确定第一名的是A1
需要在剩下的马中选取前四名,那B组B5肯定是要弱于B组前四名,排除;C组C4肯定要弱于B1和C组前三名,排除。同理:
被淘汰的包括:B5,C4,C5,D3,D4,D5,E2,E3,E4,E5
那么剩下的包括:
A1 A2 A3 A4 A5
B1 B2 B3 B4
C1 C2 C3
D1 D2
E1
我们以这一次选取前两名为目标,会发现,A4肯定弱于A2,A3,B3肯定弱于B1,B2,C3肯定弱于C1,C2,D1,D2,E1肯定弱于B1,C1
因此,第七次我们选取的参赛马为:[A2, A3, B1, B2, C1]
这次的前两名肯定是总共的第二第三名。假设我们的目标是八次比赛完成排名。
最后一名可能会有三种结果:
1. 最后一名是C1:再好不过,C1以下以右的全部可以排除:
剩下的包括
A1 A2 A3 A4 A5
B1 B2 B3 B4
可以看到接下来需要从六匹马中选取两匹马,因此我们只需要排除一匹马即可。
我们给情况分类:
(1)A2,A3,B1,B2,C1
(2)A2,B1,A3,B2,C1
(3)A2,B1,B2,A3,C1
(4)B1,A2,A3,B2,C1
(5)B1,A2,B2,A3,C1
(6)B1,B2,A2,A3,C1
除了(1)和(6)之外,其余情况都可以直接在第七次比赛中得到第四名,那么第八次比赛从剩余五匹马中选取第一名就行。
对于(1)和(6),只能晋级两匹马,但是我们可以取这次比赛的第4名所在的组,将该组最后一名排除。因为:
例如:对于(1),有资格争取第四第五名的还包括:B1,B2,A4,A5,而B3,B4因为肯定慢于B1,B2,被排除。
同理适用于(6)
2.最后一名是B2
那么剩下的包括:
A1 A2 A3 A4 A5
B1
C1 C2 C3
D1 D2
E1
可以看到我们接下来需要从九匹马中选取两匹马,因此我们需要排除四匹或以上的马。
继续分类:(1)A2,A3,B1,C1,B2
(2)A2,B1,A3,C1,B2
(3)A2,B1,C1,A3,B2
(4)B1,A2,A3,C1,B2
(5)B1,A2,C1,A3,B2
(6)B1,C1,A2,A3,B2
对于(1)(2)(4),C1是第4名,因此只有C1有资格争夺最终的第五名,C2,C3,D1,D2,E1都将被排除。剩下的包括:
A1 A2 A3 A4 A5
B1
C1
那么第八次比赛直接从剩余的四匹马中选取前2名当作最终的第四第五名就行。
对于(3)(5),A4,A5被排除,另外排在C1身后的C2,C3,D1,D2,E1只有一个竞争最终第五名的名额,因此C3,D2,E1被排除。剩下的包括
A1 A2 A3
B1
C1 C2
D1
依然是第八次比赛直接从剩余的四匹马中选取前2名当作最终的第四第五名就行。
对于(6),C2,C3,D1,D2,E1与前两组剩余的两匹马A2,A3竞争最后的两个名额,必须得进行第九次比赛才行。
3.最后一名是A3
(1)A2,B1,B2,C1,A3
(2)A2,B1,C1,B2,A3
(3)B1,A2,B2,C1,A3
(4)B1,A2,C1,B2,A3
(5)B1,B2,A2,C1,A3
(6)B1,B2,C1,A2,A3
(7)B1,C1,A2,B2,A3
(8)B1,C1,B2,A2,A3
这种情况只能排除A3,A4,A5,剩下的包括:
A1 A2
B1 B2 B3 B4
C1 C2 C3
D1 D2
E1
可以看到接下来需要从九匹马中选取两匹马,因此我们需要排除四匹或以上的马。
对于(1)(3)(5),可以排除掉C2,C3,D1,D2,E1,类似于前文的分析,显然可以在第八次完成任务。对于(2)(4),由于B2是第4名,只有B2有资格竞争最终的第五名,可以排除B3,B4,C2,C3,D1,D2,E1只有一匹马有资格竞争第五名,可以排除C3,D2,E1,因此也可以在第八次完成任务。
对于(6),只能排除C3,D2,E1三匹马,剩下的需要由A2,B3,B4,C1,C2,D1六匹马竞争第五名,因此也必须得用九次比赛。
对于(7)(8),由于C2,C3,D1,D2,E1都无法被排除,显然必须得用九次比赛。