赛马问题 25匹马 5个赛道 选最快5匹马
赛马问题
一·问题描述
面试常见问题,现有25匹马,5条赛道,没有计时器的情况下,如何选出最快的5匹马
难点 :三匹马在筛选出第一名之后,需要比较的马不多。但如果要选出前5匹马,在选出第一名之后,经过筛选,留下的马还是很多,这个时候很多人就会因为不知道如何分组而手忙脚乱。
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
A1 | B1 | C1 | D1 | E1 |
A2 | B2 | C2 | D2 | E2 |
A3 | B3 | C3 | D3 | E3 |
A4 | B4 | C4 | D4 | E4 |
A5 | B5 | C5 | D5 | E5 |
二·解题思路
1. 顺序选第一
分组选出5组,每组5匹马。每组分别比赛,然后组间第一再比赛。通过筛选之后再分组,选出Top2和Top3。下面分为Top3是C1和不是C1两种情况。
2. Top3是C1
将C1之后的进行比较决出Top4和Top5
3. Top3不是C1
先选出Top4,在选出Top5
三·解题过程
1.预筛选(6次)
25匹马分成5组,每组5匹马。每组分别比赛,然后每组第一再比赛。其中N1>N2>N3>N4>N5。组内有序,组间第一有序。
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
A1 | B1 | C1 | D1 | E1 |
A2 | B2 | C2 | D2 | E2 |
A3 | B3 | C3 | D3 | E3 |
A4 | B4 | C4 | D4 | E4 |
A5 | B5 | C5 | D5 | E5 |
2.排除无效的马
因为要选出前5匹马。同时第一轮筛选得出关系A>B>C>D>E。所以E组可以排除E2,E3,E4和E5四匹马。
例如:E2要进Top5,先决条件是E1至少进入Top4,但是比E1快的有A1,B1,C1和D1四匹马。所以E1无法进入Top4,因此E2无法进入Top5。
同理排除以下红色的马
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
Top1 | B1 | C1 | D1 | E1 |
A2 | B2 | C2 | D2 | E2 |
A3 | B3 | C3 | D3 | E3 |
A4 | B4 | C4 | D4 | E4 |
A5 | B5 | C5 | D5 | E5 |
剩余如下
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
Top1 | B1 | C1 | D1 | E1 |
A2 | B2 | C2 | D2 | |
A3 | B3 | C3 | ||
A4 | B4 | |||
A5 |
3.选出Top2和Top3(1次)
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
Top1 | B1 | C1 | D1 | E1 |
A2 | B2 | C2 | D2 | |
A3 | B3 | C3 | ||
A4 | B4 | |||
A5 |
表中存在快慢关系如下
A1>A2>A2
A1>B1>B2
A1>B1>C1
所以Top2和Top3只可能出现的A2,A3,B1,B2和C1这5匹马中(表中标红)。将这5匹马作为一组进行比赛可以选出Top2和Top3
4.C1出现的位置
现在我们关注C1出现的位置。因为存在快慢关系A1>B1>C1,所以C1出现的位置只有两种情况。C1要么是Top3(B1为top2),要么C1不是Top3
1.C1是Top3(1次)
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
Top1 | Top2 | Top3 | D1 | E1 |
A2 | B2 | C2 | D2 | |
A3 | B3 | C3 | ||
A4 | B4 | |||
A5 |
当C1是Top3时,存在快慢关系如下
C1>C2>C3
C1>D1>E1
D1>D2
基于以上关系,Top4和Top5只会出现在C2,C3,D1,D2和E1中(表中标红)。将这5匹马作为一组比赛可以决出Top4和Top5。
2.C1不是Top3(2次)
排除Top1,Top2和Top3之后将每组第一作为一组进行比赛,选出Top4之后,将Top4所在组的下一匹马加入进组再比一次选出Top5。
举例:假如选出的Top2是B1,Top3是A2
那么Top4所在的组就是A3,B2,C1,D1和E1(表中标红)
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
Top1 | Top2 | C1 | D1 | E1 |
Top3 | B2 | C2 | D2 | |
A3 | B3 | C3 | ||
A4 | B4 | |||
A5 |
假如选出的Top4是C1,那么Top5所在的组就是A3,B2,C2,D1和E1(表中标红)
A组 | B组 | C组 | D组 | E组 |
---|---|---|---|---|
Top1 | Top2 | Top4 | D1 | E1 |
Top3 | B2 | C2 | D2 | |
A3 | B3 | C3 | ||
A4 | B4 | |||
A5 |
5.特殊情况
当经过预筛选和排除无效的马,我们可以得到ABCDE这5组中最快的马是A1,同理BCDE这4组中最快的马是B1。那么可以比较A组中其余的马和B1,即比较A2,A3,A4,A5和B1。如果此时得到的结果恰好是B1最慢,即A2>A3>A4>A5>B1。那么最快的5匹马就是A组的5匹马,因为A组中所有马都比BCDE四组中最快的马快,所有A组的马比其余四组所有的马都快。此时,最快的5匹马顺序为A1,A2,A3,A4和A5。
PS:这种方法是最快的,只需要7次。但值得注意的是,这是一种特殊情况,不具有解题思路的代表性。
总结
在本次的赛马问题中,共有25匹马,5条赛道,要求选出最快的5匹马。加上特殊情况,需要的总次数在7次到9次之间。