虹软Android面试题,网宿笔试题-赛马问题

## 25 匹马, 5 个赛道, 决出前 3 名

1. 将 $25$ 匹马分成 $5$ 组, 各组内进行一次比赛, 将比赛结果按降序排列 (如图所示, 按 $1 \rightarrow 5$ 降序排列), 淘汰每组中的后两名 (黄色区域);

2. 取各组第一名进行一次比赛并降序排列 (如图所示, 按 $a\rightarrow e$ 降序排列), 确定第一名为 $a1$, 淘汰后两名组内所有成员及 $b3$, $c2$, $c3$ (橙色区域);

3. 现在还剩下蓝色区域五匹马名次未确定 (蓝色区域), 再进行一次比赛, 选出前两名.

至此得到了前 $3$ 名及其排名. 需且只需 $7$ 次比赛. 如下图:

![](https://leanote.com/api/file/getImage?fileId=59c8c852ab64412491002159)

## 延伸一: 64 匹赛马, 8 个赛道, 决出前 4 名

1. 将 $64$ 匹马分成 $8$ 个组, 每组内进行比赛, 按成绩降序排列 (如图所示, 按 $1 \rightarrow 8$ 降序排列), 淘汰每组内后 $4$ 名(黄色区域);

2. 取各组第一名进行比赛, 按成绩降序排列 (如图所示, 按 $a\rightarrow h$ 降序排列), 确定第一名为 $a1$, 淘汰后 $4$ 名所在组的所有成员及 $b4$, $c3$, $c4$, $d2$, $d3$, $d4$ (橙色区域).

3. 现在剩余蓝色区域和白色区域共 $9$ 匹马名次未确定, 取蓝色区域标记的 $8$ 匹马进行一次比赛.

- 如果结果中 $c1$ 处于前 $2$ 名, 则将 $d1$ 与比赛结果中的前 $3$ 名再赛一次, 取其中的前 $3$ 名;

- 否则直接取前 $3$ 名.

至此得到了前 $4$ 名及其排名. 最少需要 $10$ 次, 最多需要 $11$ 次比赛. 如下图:

![](https://leanote.com/api/file/getImage?fileId=59c8c792ab64412491002131)

## 延伸二: 25 匹赛马, 5 个赛道, 决出前 5 名

1. 将 $25$ 匹马分成 $5$ 组, 各组内进行一次比赛, 将比赛结果按降序排列 (如图所示, 按 $1 \rightarrow 5$ 降序排列);

2. 取各组第一名进行一次比赛并降序排列 (如图所示, 按 $a\rightarrow e$ 降序排列), 确定第一名为 $a1$, 淘汰最后 $i$ 组中后 $5-i$ 名 (橙色区域);

3. 取最接近第一名的 $5$ 名, 如 $a2$, $a3$, $b1$, $b2$, $c1$ (蓝色区域) 进行一次比赛;

![](https://leanote.com/api/file/getImage?fileId=59c8cc28ab6441249100220d)

- 根据比赛结果的不同安排后面的比赛, 假设比赛结果如下:

## 延伸三: 25 匹赛马, 5 个赛道, 决出全部名次

## 延伸四: 64 匹赛马, 8 个赛道, 决出全部名次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值