逻辑思维--赛马问题

1,097 阅读1分钟

image.png

今天看到一个赛马速度的问题

一个赛场中有5条赛道,现在有25匹马,在没有定时器的前提下最少跑多少圈可以角逐出前三名?

我一开始的设想是先组成5组,跑5次,决出各组第一名,再5匹马跑一次,决出一二三名

只需要6场

但是如果第一二三名恰好都在同一组呢,那么二三名不就在第一轮被淘汰了?

然后我又改进了一下,把每轮的第一二三名抽出来,组合一下在一起,再进行比较,那就要进行十一轮,因为一轮淘汰两匹马,淘汰二十二匹,那就是剩下前三名了

但是我觉得应该还可以更少吧

于是查了一下相关文献

得出更优化的方案

将所有马分为5组进行比赛, 选出5个第一名, 然后进行比赛, 确定一个, 并把第一名取走, 再从第一名的队列中, 选择第二名, 放入其中, 进行比赛。之后,在出现第二名的组内,选择次一名的,再进行比较,只需要8场就行

详细解说一下:

首先比五场,得出各组名次 image.png

那么各组第一名再进行比赛,假设第三组第一名得胜,那么全场第二名应该出自这些黄色区域

image.png

假设第二名是第二组第一名,那么全场第三名应该出自绿色区域

image.png

所以最少需要8场

参考文献: blog.csdn.net/caroline_we…