一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马?

分组一:

1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20
25

分组二:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24
25

我们考虑这两种极端的分组,因为所有的排序问题最怕的就是原先就是有序的,那么就会多花很多白费的功夫,刚好这道题需要我们找有序的,而且是最少的次数,那无疑就是本身是有序的最好找。

第一步:找出NO.1

1.首先,让每个分组的马跑一次,找出每个组最快的;

2.然后将每个组最快的一起跑一次,决胜出NO.1;

在这里我们必须承认,6次决胜出NO.1是唯一解法,所有的8*8匹马8跑道或者是6*6匹马6跑道,都是N+1次决胜出NO.1。


最少解法的情况:

误区:

1.我们本来会认为第二种会是最优,因为刚好第六次赛跑的5匹马就是前五名;

2.但是,我们怎样才能知道这5匹就是前五名呢,毫无疑问我们先要排除出现分组一的情况:就是每个组的第二名有可能比其他组的第一名还要快。

3.那么我们就要让所有组的第二名跑一次,决胜出最快的,然后再拿最快的跟第六次赛跑中的最后一名比,如果刚好最后一名比最快的还快,那么第六次的五匹马就是前5名。

这样的次数是7次。

其实这种做法是最保险的,每次都要考虑每个组其他名次中最快的一名,正统的解法也是需要每次去这样解,每次都要去考虑剩余其他名次中最快的一名。

最快解:

1.其实这种东西就像是二维数组,行就是列。

2.我们可以考虑第六次的是前5名,为什么不考虑像分组一的情况,NO.1那一名的分组刚好是前5名?

3.由于我们之前的5次已经知道NO.1那一组的排名,那么我们只要把那一组最后一名用来跟第六次的第二名进行对比,发现它比第二名还快,那就是NO.1那个组都是前5名。

这样的次数是6次。


1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25

关于赛马的问题,25匹赛出前3名或者前5名相关推荐

  1. 赛马比赛:25匹马,5个赛道,选出跑的快的前几匹

    package mainimport ("fmt""math/rand""sort" )// 赛马 //@题目:有25匹马,5个赛道,选出跑 ...

  2. 赛马-25匹马选出前三名问题

    题目: 25匹马,速度都不同,但每匹马的速度都是定值.现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢.问最少赛几场可以找出25匹马中速度最快的前3名? 答案: 25匹马分成5组,先 ...

  3. 25匹马,5条赛道,一匹马一个赛道,求决胜1,2,3名至少多少场。

    有25匹马,速度都不同,但每匹马的速度都是定值.现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢.问最少赛几场可以找出25匹马中速度最快的前3名? 每匹马都至少要有一次参赛的机会,所 ...

  4. 25匹马,5条赛道,一匹马一个赛道,比赛只能得到5匹马之间的快慢程度,求1,2,3名

    题目:赛马,有25匹马,每次只能5匹马进行比赛,比赛只能得到5匹马之间的快慢程度,而不是速度,请问,最少要比1次,才能获得最快的前3匹马? 给所有马标号,分成5组: A组:A1,A2,A3,A4,A5 ...

  5. 【智力问题】25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。...

    答案是7次. 1. 首先将25匹马分成5组a.b.c.d.e进行比赛.比赛的次数就是5次.得到每组的第一名,分别编号a1,b1,c1,d1,e1. 2. 然后我们将每组的第一名进行比赛,得出结果.假设 ...

  6. 【字节跳动面试题】赛马问题 64匹马8个跑道最少几次赛出最快的4匹马

    2020年1月 字节跳动研发岗实习面试题 文章目录 赛马问题 一. 64匹马8个跑道 二. 36匹马6赛道 赛马问题 一. 64匹马8个跑道 64匹马8个跑道(不计时),问最少要比多少次,才能知道最快 ...

  7. 一个赛马问题 25匹马5个赛道,每个赛道每次只能跑一匹马,问需要跑几次,能求出跑得最快的三匹马。...

    肯定 7 次 25匹马先设5组:假设A,B,C,D,E五组 跑5轮后选每组前3名进下一轮 每组第一名比赛一轮(第6圈)得出第一名(假设A1)第二名(假设B1)第三名(假设C1) 从(第6圈)第一名组中 ...

  8. 【算法】25匹马,每次最多赛5匹,最少几次可以赛出前三名?

    答案是7次 第一步 将25匹马平均分五组,分别比赛,然后淘汰掉每组的第四第五名,每个组剩下3匹马. 第二步 将剩下五个组的第一名拉出来赛跑,排名为第四名和第五名所在的整个组淘汰,这样还剩3个组,每个组 ...

  9. 25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛

    红色可以看做预测第一名 绿色可以看做预测第二名 蓝色可以看做预测第三名   小组第一 小组第二 小组第三 小组第四 小组第五 小组A A1 A2 A3 A4 A5 小组B B1 B2 B3 B4 B5 ...

  10. 25匹马,5个跑道,最少需要比赛多少场就能决出前三名

    这是我一个搞Java的朋友当面试官时出的题,回来他问我,我自己想了想,后来在网上看到很多相关的介绍,于是自己也想写一个,如果哪里写的不对,大家多见谅 其实这个题并不难,就是一个类似奥数题,需要我们去做 ...

最新文章

  1. 干货|NLP 的四张技术路线图,带你系统设计学习路径
  2. vSphere 5.0系列之二 vSphere Client的安装
  3. mysql数据库语法_MySQL数据库语法(一)
  4. 什么是Python中的map,reduce和filter?
  5. java 虚拟内存 堆_jvm虚拟内存分布 与 GC算法
  6. [Nvidia] nvidia-smi
  7. 大数据技术对企业的影响有哪些
  8. 机器学习项目开发经验
  9. 实现搜索框(含历史搜索记录)
  10. 【Physiol Plant】转录因子PpybZIP43通过激活PpySPS3表达和与PpySTOP1互作从而促进梨果实蔗糖合成
  11. 07.图6 旅游规划 [Dijkstra 算法]
  12. 微分几何学习(二)(曲线论,弧微分)
  13. C++primer学习:关于upper_bound和lower_bound的探究.
  14. Windows11重置提示找不到恢复环境怎么解决?
  15. 蓝桥杯题目练习(JAM计数法)
  16. Docker-查看镜像仓库中镜像的版本信息
  17. Cadence Allegro PCB设计88问解析(十四) 之 Allegro中库路径设置方法
  18. C语言中——三种方法判断是偶数还是奇数
  19. 教程:使用C#实现CSV和Excel文件互转
  20. pytest单元测试框架

热门文章

  1. 如何用hb制作一个html网页,HTML网页制作基础
  2. linux-查看CPU温度
  3. 编译原理基本概念和术语
  4. ARM assembler in Raspberry Pi
  5. Java如何避免空指针异常?
  6. java 图片下载爬虫_java入门爬虫(爬取网页的图片下载到本地磁盘)
  7. ffmpeg过滤器系列:序章,什么是ffmpeg过滤器?ffmpeg过滤器可以用来做什么
  8. python如何检验显著性差异_Python中如何计算Pearson相关性和显著性?
  9. 浅谈IPFS星际文件系统和Filecoin是什么?
  10. RuntimeWarning: invalid value encountered in arccos