64匹马8个跑道问题

64匹马8赛道选前8的算法解析 今天和大家讲一道很火的面试题——64匹马8赛道选前8的算法解析。 题目 有64匹马,一共有8个赛道,想要找出最快的8匹马,要比赛最少多少轮才可以? 解析 这道题初步一看会让人觉得摸不到头脑。 我们试着先用图表示下。 假设每一匹马是一个图的一个节点,用有向线段A->B表示马A比马B快 最终我们可以找到一条从最快马到最慢马的单向路径。 那么我们可以有这样的约束: 如果有A->B,A-... 阅读详情

64匹马,8个跑道,假设马发挥稳定且没有体力问题,需要多少场可以决出所有名次(前4名/前8名)?

方法一:归并方法,49场

1). 把64匹马分成8组,先把每组排个序,共8场比赛。

2). 把这8组8匹马两两合并为4组16匹马的有序组,每次合并需要3场比赛。总共需要4次合并,总共需要赛 12 场;

  • 这里就是本题的关键所在:从其中任意选出两组,合并后的前4名肯定在两组的前4名这8匹马里,这8匹比一场就把两组的前4比出来了;对剩下的12马采取同样的策略,各取前4名,然后通过一场比赛决出整合后序列的5-8名,最后还剩8匹马,再为这8匹赛一次,这就是最后8名了。

3). 把4组16匹马再两两合并为2组32匹马,每次合并需要7场比赛。总共需要2次合并,总共需要赛 14 场。

  • 方法同上,实际上可以证明,两组有序的8k匹马合并成一组16k匹马,需要16k/4-1 =
    4k-1场比赛。(之前每场比赛决出靠前的4名,最后一场比赛一次决出最后的8名)

4). 把2组合并成1组,需要15场比赛。

这样的话,一共就是 8+4*3+2*7+1*15=49场比赛。

方法二:另一牛逼解答,37场。

先随意将马排成8*8阵型:

               01   02   03   04   05   06   07   08

               09   10   11   12   13   14   15   16

               17   18   19   20   21   22   23   24

               25   26   27   28   29   30   31   32

               33   34   35   36   37   38   39   40

               41   42   43   44   45   46   47   48

               49   50   51   52   53   54   55   56

               57   58   59   60   61   62   63   64

1、每一行赛一场,共八场。由对称性,不妨设每一行都是从左到右速度依次减慢。即01,09,17,25,33,41,49,57是八场的冠军。

2、下面说明,之后每4场总可以决出8个名次。

(1)各组冠军赛一场,(2)各组垫底赛一场,共两场,决出了第一名、第六十四名。且不妨设第一列各马速度由上至下依次变慢。即01是总冠军。
(3)现在,总第二名有两匹马候选,02,09。让02,09,10,17四匹马参与第三场。第三场另四匹呢?它们是有类似情况的最慢的几匹马。例如如果64是最慢的,第八列由快到慢依次是08,16,24,32,40,48,56,64,那么,让56,63,55,48四匹马参与第三场。由第三场的结果,总可以知道总第二、第六十三名。

  • 下面说明,不管02,09,10,17赛得的结果如何,总第三、四名的候选马不会超过四匹。

  • 若02获胜,那么总第三、四名的候选马只有03,04,09,以及10和17两匹中较快的一匹(这两匹已经赛过)

  • 若09获胜,那么第三名实际上已经知道了,是02、10或17中较快的一匹。若是02,则第四名候选马是03,10,17。若是10,则第四名候选马是02,11,17。若是17,则第四名候选马是02,10,18,25。

  • 于是,总第三、四名的候选马不会超过四匹。同理,总第六十二、六十一名的候选马也不会超过四匹。

(4)将上述总第三、四名的候选马、总第六十二、六十一名的候选马至多不超过八匹,赛一场,于是至此已经决出了前四名后四名共八个名次。

  • 不断重复上述过程,直至7个4场后决出了56个名次。

3、最后还剩8个名次,用一场解决。

总计:8+4*7+1=37场。

腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹... 阅读详情

相关推荐

程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹

昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹 一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹马,8个跑道,选出最快的...

web前端技术交流群:457188470 11万+

测试题:64 匹马,8 个赛道,最少多少次比赛找出最快的 4 匹马?

64 匹马,8 个赛道,最少几场比赛找出最快的4匹马?

安正勋的博客 2万+

半年过去了还有人说64马8跑道最少10次分前四,写个9次的部分代码给你们看看

本人菜鸟萌新,写给这些菜鸟萌新不如的人看看,最少只要9次的部分代码(后面懒的写),如有写的不好的地方欢迎留言指导 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { double[] horse = { }; int[] win = { }; int Index = -1; ...

qq_41543660的博客 2983

腾讯面试:赛马问题【超详细图解】64匹马,8个赛道,找出前4名最少比赛多少场?

大厂面试题:赛马问题 引子:在面试大厂时,怎么也没想到会考我一道脑筋急转弯。 问题:有64匹马和8条跑道,每次只允许最多8匹马同时比赛(假定每匹马每次比赛速度相同),但是没有秒表不能计时,问最少要比多少次,才能选出最快的4匹马? 常规思路 因为每匹马都至少得跑一次,而我们只需要选出最快的4匹,所以首先肯定得跑8场,每场淘汰4匹马。之后我们很容易想到将两组获胜的4匹马进行组合比赛,就可找到最快的4匹马。 这样解题,共需4轮15次,但不是最优解。 正确答案解析 第一轮:8场 把64匹马随机分为8组,总共比8场

Antai_ZHU的博客 1万+

[高频面试题]64匹马,8个赛道,找出跑得最快的4匹马

[高频面试题]64匹马,8个赛道,找出跑得最快的4匹马

weepon的博客 6万+

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

2020年1月 字节跳动研发岗实习面试题 64匹马8个跑道(不计时),问最少要比多少次,才能知道最快的4匹马 首先要赛8+1场,得到上表中的相对顺序 A1>A2>…>A8 B1>B2>…>B8 … H1>H2>…>H8 A1>B1>…&g............

捡起一束光的博客 9930

2、赛马问题

针对上面的赛马问题,我们最后的出的结论就是最少10次获得前四的马匹,最多11次可以获取到最快前四的马匹。

u011922236的博客 790

用Logisim搞定华科计组实验:单总线CPU设计从微程序到硬布线的保姆级通关攻略

本文详细介绍了如何使用Logisim完成华中科技大学计算机组成原理实验中的单总线CPU设计,涵盖从微程序控制器到硬布线控制器的完整实现过程。通过MIPS指令译码器设计、微程序控制原理、状态机实现等关键步骤的保姆级教程,帮助学生掌握CPU设计的核心技能,并提供Educoder平台提交与调试的实用技巧。

weixin_30897233的博客 476

面试题:赛马最快N匹

最近笔试遇见这个题,在网上看了一些回答大概理解了,现总结一下。 理解有限,如有错误,还望大神指正! 25匹马,5个跑道(每次有5匹马,可以同时比赛),怎样选出最快的5匹来?最少的次数 我的答案:最快7次,最慢10次 1.分5组比赛5次,得到排序 A1,A2,A3,A4,A5 B1,…,B5 C1,…,C5 D1,…,D5 E1,…,E5 2.第6次,取5组中,每组第1,比赛 A1, B1, C1,...

marmalade要天天向上 1300

7.7 数据分析助手:用AI洞察业务数据价值

摘要:AI数据分析助手构建指南 本文介绍了如何构建AI数据分析助手,帮助企业从业务数据中提取价值。系统包含四大核心模块:自然语言理解模块解析用户查询意图,查询规划模块转换为SQL语句,数据可视化模块生成图表,以及洞察生成模块提供深度分析。文章通过销售数据分析助手案例,展示了从数据库准备到自然语言处理的完整实现流程,包括示例代码和系统架构图。该解决方案可降低数据分析门槛,让业务人员直接参与数据探索,提升决策效率。

yonggeit的博客 4093

A robust and easy to implement method for IMU calibration without external equipments(IMU标定)

A robust and easy to implement method for IMU calibration without external equipments 1 标定原理1 亲试可用,还有动态演示效果不错。相比商用产品的简易标定流程,该标定方法有以下几点不同: 给出了加速度计和陀螺仪更复杂的模型。 利用Allan方差的定义,标定陀螺仪的偏置。 大量冗余数据,保证最优化收敛。利用数十...

擦擦擦大侠的博客 3948

关于64匹马8条跑道找最快的4匹马,需要跑几次?问题如何用C++实现

3. 第三轮比赛:使用第二轮每条跑道上的前两名马,再次进行比赛。这样我们就有了8条跑道上的前4名马,它们就是最快的4匹马。2. 第二轮比赛:使用第一轮每条跑道上的前两名马,再次进行比赛。这样我们就有了8条跑道上的前8名马。1. 第一轮比赛:每条跑道上比赛一次,每场比赛选出每条跑道上的前两名马。这样我们就有了8条跑道上的前16名马。2. 第一轮比赛模拟了8条跑道,每条跑道上有8匹马。`race_horses`向量表示每条跑道上的马匹。3. 对每条跑道上的马匹进行逆序排序,这样最快的马匹就排在了向量的前面。

m0_66061828的博客 523

ADS 2023 实战:手把手教你仿真一个中心频率 2.4GHz 的带通滤波器(附工程文件)

本文详细介绍了使用ADS 2023软件设计和仿真中心频率2.4GHz带通滤波器的全流程,包括工程准备、指标定义、原理图设计、仿真优化及实际电路实现。通过切比雪夫滤波器拓扑和参数优化,实现高性能的带通滤波器设计,适用于无线通信系统。附有工程文件和常见问题解决方案,助力工程师快速掌握射频滤波器设计技巧。

weixin_30790841的博客 482

算法题:64匹马,8个跑道;12匹马,3个赛道。

算法:64匹马,8个跑道。改天试着更新:12匹马,3个赛道,找出最快的3匹马。 算法题:64匹马,8个跑道。一个跑道一次只能上一匹马,最快安排跑几次选出跑得最快的4匹马?不能计时 第一步,首先把64匹马分成八组,比赛8次之后按照顺序编号。 这一样一共是比了8次,淘汰每组后四名,剩余32匹马。比赛+8。 第二步取每组的No.1进行比赛: 淘汰后四组,剩余16匹马,比赛+1。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e35fa82f527944b9aa4b3

geidongdong的博客 640

52、基于格的具有解密密钥暴露抗性的可撤销(分层)身份基加密方案

本文提出了首个基于格的具有解密密钥暴露抗性(DKER)的可撤销分层身份基加密(RHIBE)方案。通过引入分层密文、分层解密密钥和级别转换密钥等创新工具,克服了格结构与传统密钥重新随机化属性不匹配的难题。该方案不仅支持可扩展的密钥撤销机制,还具备密钥委托功能,为后量子密码学领域的发展提供了新的思路和方法。

efc12345678的博客 123

RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型

本文记录的是基于 GhostNetV3 的 RT-DETR轻量化改进方法研究。GhostNetV3的轻量模块采用方法,训练时为深度可分离卷积和1×1卷积添加,推理时通过移除分支、折叠操作,能够在不增加推理成本的同时提高性能,从而实现RT-DETR的轻量化改进。

Limiiiing的博客 971

赛马排序

Question: 64匹马,8个跑道,选出速度最快的4匹马需要多少次 64 horse, 8 racetrack, To find the 4 fastest horses, how many time do you need at least? Answer: 11 Solution: Step 1: Divide 64 horses into 8 groups, each group con...

ab2296939808的博客 608

无线传感网络的Matlab实现

Matlab是一种功能强大的数值计算和数据分析工具,也可以用于无线传感网络的建模和仿真。根据实际需求,可以进一步扩展和优化模型,例如考虑节点能量消耗、网络路由、数据融合等方面的问题。函数用于绘制节点之间的连接关系,其中第一个参数是邻接矩阵,描述了节点之间的连接关系。这里使用了一个4个节点的简单例子,可以根据实际需求修改节点数量和连接关系。可以使用Matlab中的图形绘制函数来可视化节点的位置和连接关系。在无线传感网络中,节点的能量是一个关键因素。通过计算节点的剩余能量,可以评估节点的能量消耗情况。

2301_79331387的博客 249

程序员求助:被腾讯一道面试题难住了

昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹 一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹马,8个跑道,选出最快的四匹马。最少跑几个回合能够选出最快的四匹马。这样的求助也是瞬间引来了网友的围观与议论,我们先来看看网友们都是怎么解

Java0258的博客 363

有限元ABAQUS软件安装后管理员身份运行报错:Cannot connect to license server system...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2072

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

64匹马8条跑道找最快的4匹马

假设跑道一样,马体力无限,速度均衡。有64匹马只有8条跑道,找最快的4匹马,至少要跑多少次? 答案:10-11次。 1.分8组跑8次。知道了每组1-8名的结果。只找最快4匹,所以淘汰每组的5-8名。 2.然后取每组第1跑1次。设1-8名所在的组分别为A-I组,1-8名编号为A1,B1,C1,D1,E1,F1,G1,I1。 可以推导出: A1>B1>C1>D1>E1>E...

浅笑无痕的专栏 1565

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

BAT 面试题:25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次能比出前3名?前5名?

写在前面:最近在刷面试题的过程中遇到这么一道题,感觉解读题目的角度很多,这里介绍自己的做法。注意:本文并不是参考答案,只是为大家在面试的时候多提供一条思路,或许可以获得面试官的青睐。 25匹马,5个跑道,每个跑道最多能有 1 匹马进行比赛,最少比多少次能比出前 3 名?前 5名? 1 - 一些假设 同一马匹在任意场次的速度都能保持一致。 2 - 前 3 名分析 将 25 匹马分为 5 个小...

Xu_JL1997的博客 4287

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

腾讯面试题:64匹马,8个跑道,选出最快的四匹马

题目描述 64匹马,8个跑道,需要赛多少场,选出最快的四匹马? 题目分析 题目本身是含义不清楚的,但是既然是程序员面试题,隐含条件是: 1、不能计时; 2、在最坏的情况下,至少多少轮比赛,必然能选择出最快的4批马? 求解过程 第一步(前8场),64匹马分成8组,每组8匹,淘汰每组的后四名(8场) 如下图: 结果: ...

薛定谔的猫-前端领域 3006

64匹马8个跑道需要多少轮才能选出最快的四匹

分成两种场景: 计时的场景:8场,不用解释,根据计时排名 无计时的场景:最少10场,最多11场 思路: 1、分8组决出8组前四名,共跑8次,每个小组剩下四人;(已跑8场) 2、把八个小组里面的第一名选手代表小组出来跑(已跑8+1 = 9 场) ,淘汰后四组,他们组中的第一名都没进前四,剩下的肯定不行,后四组全部淘汰 3、排名第四的组,淘汰剩下的3个,因为他们中最好的,顶多就是维持目前的...

码瘾的空间 1282

【详解腾讯面试题】64匹马8个跑道最少需要多少轮才能选出最快的4匹马?

题目:64匹马8个跑道最少需要多少轮才能选出最快的4匹马? 题目分析:题目本身是含义不清楚的,但是既然是程序员面试题,隐含条件是: 1、不能计时; 2、在最坏的情况下,至少多少轮比赛,必然能选择出最快的4批马? 该题目的分析如下:(直接上图,号码是序号) 要点: 1、不能进入每组前4的,必然可以淘汰。-32匹(8轮) 2、每组第1名比赛后,不在前4的组必然可以淘汰。-16匹(1轮...

Sunset Coder 3595
上一篇: 25匹马5个跑道问题
下一篇: 23种设计模式彩图-设计模式之禅
HelloCooper
博客等级 码龄11年 13粉丝 37原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值