笔试题:赛马问题

题目描述

25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次可以比出前5名?


题解

因为有25匹马,而跑道只有5个,最开始通过6场选出第一名的马匹应该是毫无争议的

小组赛:

12345
A1A2A3A4A5
12345
B1B2B3B4B5
12345
C1C2C3C4C5
12345
D1D2D3D4D5
12345
E1E2E3E4E5

决赛:

12345
A1B1C1D1E1

为了方便讨论,在这里假设每组马的编号与他们在组内的名次相同,同时第六场决赛也把5匹马的名次与他们组的字母顺序相对应,即假设A1为冠军
有了冠军,接下来的目标是寻找前5名中的剩下4名,除了第六场中的B1、C1、D1、E1各小组头名的四匹马以外,潜在的竞争对手为A组里剩下的马匹,因为它们只输给过A1

亚军争夺赛α:

12345
A2B1C1D1E1

亚军争夺赛五匹马的名次结果会影响到接下来还有几场比赛,这里我们先假设亚军为A2,等这一轮的讨论结束了,我们再回来看看其他的名次结果会如何影响比赛的进程

假设A2赢得了亚军争夺赛,前5名只剩下3位等待争夺,而E1在亚军争夺赛中排位倒数第一,这代表了前5名是不可能有E1与其在的E组成员一席之地了。因为比E1马快的已经有B1、C1、D1三匹马,而我们只需要3匹马来得到第3-5名,同时,E组里没有任何一匹马比E1要快,因此提前宣布E组马匹全体回家

再来看看还有哪些马匹可以参加接下来的比赛,因为A2拿下了亚军,我们需要把A3、A4、A5这三匹A组的马也要拉进来与B1、C1、D1三匹马进行竞争,因为跑道只有5条我们先把倒数第一名的D1马移出,再视情况是否需要加赛

3-5名争夺赛:

12345
A3A4A5B1C1

我们假设A3、A4、A5战胜了B1、C1,位列头三名,如果是表中的这个情况,前5名将立刻决出,只需要5+1+1+1=8场比赛即可得出前5名为A1、A2、A3、A4、A5

当然了,因为我们在前面的比赛假设了名次,而且这个情况其实正好是用最少的比赛次数得出前5名的情况,具体原因我们可以回到亚军争夺赛的假设再看看

亚军争夺赛β:

12345
B1C1D1A2E1

我们再次对亚军争夺赛的名次进行假设,这次A2不再是头名,假设B1为亚军,同上我们还是需要提前宣布E1与E组马匹全体回家

当B1拿下亚军时,我们需要再一次考虑3-5名争夺赛的成员,首先是季军,季军的有力争夺者有B1以外的B组成员B2、B3、B4、B5,还有C1,而第4-5名要通过季军争夺赛的结果才可以得知我们需要留下哪些马匹

季军争夺赛:

12345
C1B2B3B4B5

假设C1赢得了季军争夺赛,B组其余成员的名次如上,第4-5名的竞争马匹有B组剩余的马匹,C组剩余的马匹,D组剩余的马匹与A组除A1剩下的马匹,因为C1比上述这些马匹都快,而这些马匹唯一肯定的名次是D1 > A2,因此我们至少还需要两场比赛决出前5名,而第9场的殿军争夺赛我们需要给D1选择潜在的竞争对手

殿军争夺赛

12345
D1B2C2B3C3

假设D1赢得了殿军争夺赛,只剩下第5名是没有决出的了,因此只保留此前比赛的记录中没有马匹比它快的马匹,比如B2、D2、A2,这三匹马的快慢关系是未知的

第5名争夺赛

12345
A2B2D2NULLNULL

假设A2胜出,其实这里假设哪匹马胜出都是一样的,至于为什么只选三匹马,因为其余的马是肯定比这三匹中的一匹或多匹要慢的,选它们过来也只是陪跑而已,比如C组与B组剩下的马匹已经输给过B2了,没有必要再处刑他们,前面把比赛的马匹数补满是因为我们不仅需要决出首名,还需要参考结果的名次安排剩下的比赛

这时候共需要5+1+1+1+1+1=10场比赛即可决出前5名为A1、B1、C1、D1、A2

为什么第二轮假设需要10场比赛才得出最终名次?因为上一轮假设我们将A3、A4、A5定为了第8场比赛的前3名,这个名次的结果代表了B组,C组和跑得比C1还慢的D组全部慢于A3、A4、A5,因此不需要再安排更多的比赛,即可得出3-5名为A3、A4、A5

结论:该赛马问题最快需要8场比赛可以得出前5名,最慢需要10场比赛,减少比赛场次的情况为小组内部的剩余马匹直接占据某场比赛的头几名


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值