关于赛马的问题,25匹赛出前3名或者前5名
一共有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名相关推荐
- 赛马比赛:25匹马,5个赛道,选出跑的快的前几匹
package mainimport ("fmt""math/rand""sort" )// 赛马 //@题目:有25匹马,5个赛道,选出跑 ...
- 赛马-25匹马选出前三名问题
题目: 25匹马,速度都不同,但每匹马的速度都是定值.现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢.问最少赛几场可以找出25匹马中速度最快的前3名? 答案: 25匹马分成5组,先 ...
- 25匹马,5条赛道,一匹马一个赛道,求决胜1,2,3名至少多少场。
有25匹马,速度都不同,但每匹马的速度都是定值.现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢.问最少赛几场可以找出25匹马中速度最快的前3名? 每匹马都至少要有一次参赛的机会,所 ...
- 25匹马,5条赛道,一匹马一个赛道,比赛只能得到5匹马之间的快慢程度,求1,2,3名
题目:赛马,有25匹马,每次只能5匹马进行比赛,比赛只能得到5匹马之间的快慢程度,而不是速度,请问,最少要比1次,才能获得最快的前3匹马? 给所有马标号,分成5组: A组:A1,A2,A3,A4,A5 ...
- 【智力问题】25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。...
答案是7次. 1. 首先将25匹马分成5组a.b.c.d.e进行比赛.比赛的次数就是5次.得到每组的第一名,分别编号a1,b1,c1,d1,e1. 2. 然后我们将每组的第一名进行比赛,得出结果.假设 ...
- 【字节跳动面试题】赛马问题 64匹马8个跑道最少几次赛出最快的4匹马
2020年1月 字节跳动研发岗实习面试题 文章目录 赛马问题 一. 64匹马8个跑道 二. 36匹马6赛道 赛马问题 一. 64匹马8个跑道 64匹马8个跑道(不计时),问最少要比多少次,才能知道最快 ...
- 一个赛马问题 25匹马5个赛道,每个赛道每次只能跑一匹马,问需要跑几次,能求出跑得最快的三匹马。...
肯定 7 次 25匹马先设5组:假设A,B,C,D,E五组 跑5轮后选每组前3名进下一轮 每组第一名比赛一轮(第6圈)得出第一名(假设A1)第二名(假设B1)第三名(假设C1) 从(第6圈)第一名组中 ...
- 【算法】25匹马,每次最多赛5匹,最少几次可以赛出前三名?
答案是7次 第一步 将25匹马平均分五组,分别比赛,然后淘汰掉每组的第四第五名,每个组剩下3匹马. 第二步 将剩下五个组的第一名拉出来赛跑,排名为第四名和第五名所在的整个组淘汰,这样还剩3个组,每个组 ...
- 25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛
红色可以看做预测第一名 绿色可以看做预测第二名 蓝色可以看做预测第三名 小组第一 小组第二 小组第三 小组第四 小组第五 小组A A1 A2 A3 A4 A5 小组B B1 B2 B3 B4 B5 ...
- 25匹马,5个跑道,最少需要比赛多少场就能决出前三名
这是我一个搞Java的朋友当面试官时出的题,回来他问我,我自己想了想,后来在网上看到很多相关的介绍,于是自己也想写一个,如果哪里写的不对,大家多见谅 其实这个题并不难,就是一个类似奥数题,需要我们去做 ...
最新文章
- 干货|NLP 的四张技术路线图,带你系统设计学习路径
- vSphere 5.0系列之二 vSphere Client的安装
- mysql数据库语法_MySQL数据库语法(一)
- 什么是Python中的map,reduce和filter?
- java 虚拟内存 堆_jvm虚拟内存分布 与 GC算法
- [Nvidia] nvidia-smi
- 大数据技术对企业的影响有哪些
- 机器学习项目开发经验
- 实现搜索框(含历史搜索记录)
- 【Physiol Plant】转录因子PpybZIP43通过激活PpySPS3表达和与PpySTOP1互作从而促进梨果实蔗糖合成
- 07.图6 旅游规划 [Dijkstra 算法]
- 微分几何学习(二)(曲线论,弧微分)
- C++primer学习:关于upper_bound和lower_bound的探究.
- Windows11重置提示找不到恢复环境怎么解决?
- 蓝桥杯题目练习(JAM计数法)
- Docker-查看镜像仓库中镜像的版本信息
- Cadence Allegro PCB设计88问解析(十四) 之 Allegro中库路径设置方法
- C语言中——三种方法判断是偶数还是奇数
- 教程:使用C#实现CSV和Excel文件互转
- pytest单元测试框架
热门文章
- 如何用hb制作一个html网页,HTML网页制作基础
- linux-查看CPU温度
- 编译原理基本概念和术语
- ARM assembler in Raspberry Pi
- Java如何避免空指针异常?
- java 图片下载爬虫_java入门爬虫(爬取网页的图片下载到本地磁盘)
- ffmpeg过滤器系列:序章,什么是ffmpeg过滤器?ffmpeg过滤器可以用来做什么
- python如何检验显著性差异_Python中如何计算Pearson相关性和显著性?
- 浅谈IPFS星际文件系统和Filecoin是什么?
- RuntimeWarning: invalid value encountered in arccos