25匹马5个跑道问题

网易游戏面试题目:25个速度不同的赛车,有一个5个车道的赛道可供比赛(不提供秒表),最少经过几次比赛,得到开的速度最快的赛车? 网易游戏面试题目:25个速度不同的赛车,有一个5个车道的赛道可供比赛(不提供秒表),最少经过几次比赛,得到开的速度最快的赛车? 将25个赛车分为5组,每组5个赛车https://blog.youkuaiyun.com/fivedoumi/article/details/8020756 https://blog.youkuaiyun.com/xiaobing_hope/article/details/54585770 ... 阅读详情

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

 

注意: "假设每匹马都跑的很稳定" 的意思是在上一场比赛中A马比B马快,则下一场比赛中A马依然比B马快。

 

稍微想一下,可以采用一种 竞标赛排序(Tournament Sort)的思路。 见《选择排序 》

 

(1) 首先将25匹马分成5组,并分别进行5场比赛之后得到的名次排列如下:

              A组:  [A1  A2  A3   A4  A5]

              B组:  [B1  B2  B3   B4  B5]

              C组:  [C1  C2  C3  C4  C5]

              D组:  [D1  D2  D3  D4  D5]

              E组:  [E1  E2  E3   E4  E5]

      其中,每个小组最快的马为[A1、B1、C1、D1、E1]。

(2) 将[A1、B1、C1、D1、E1]进行第6场,选出第1名的马,不妨设 A1>B1>C1>D1>E1. 此时第1名的马为A1。

(3) 将[A2、B1、C1、D1、E1]进行第7场,此时选择出来的必定是第2名的马,不妨假设为B1。因为这5匹马是除去A1之外每个小组当前最快的马。

(3) 进行第8场,选择[A2、B2、C1、D1、E1]角逐出第3名的马。

(4) 依次类推,第9,10场可以分别决出第4,5名的吗。

 

因此,依照这种竞标赛排序思想,需要10场比赛是一定可以取出前5名的。

 

 

仔细想一下,如果需要减少比赛场次,就一定需要在某一次比赛中同时决出2个名次,而且每一场比赛之后,有一些不可能进入前5名的马可以提前出局。 当然要做到这一点,就必须小心选择每一场比赛的马匹。我们在上面的方法基础上进一步思考这个问题,希望能够得到解决。

 

(1) 首先利用5场比赛角逐出每个小组的排名次序是绝对必要的。

(2) 第6场比赛选出第1名的马也是必不可少的。假如仍然是A1马(A1>B1>C1>D1>E1)。那么此时我们可以得到一个重要的结论:有一些马在前6场比赛之后就决定出局的命运了(下面绿色字体标志出局)。

       A组:  [A1  A2  A3   A4  A5]

       B组:  [B1  B2  B3   B4  B5 ]

       C组:  [C1  C2  C3  C4  C5 ]

       D组:  [D1  D2  D3  D4  D5 ]

       E组:  [E1  E2  E3   E4  E5 ]

(3) 第7场比赛是关键,能否同时决出第2,3名的马呢?我们首先做下分析:

     在上面的方法中,第7场比赛[A2、B1、C1、D1、E1]是为了决定第2名的马。但是在第6场比赛中我们已经得到(B1>C1>D1>E1),试问?有B1在的比赛,C1、D1、E1还有可能争夺第2名吗? 当然不可能,也就是说第2名只能在A2、B1中出现。实际上只需要2条跑道就可以决出第2名,剩下C1、D1、E1的3条跑道都只能用来凑热闹的吗?

     能够优化的关键出来了,我们是否能够通过剩下的3个跑道来决出第3名呢?当然可以,我们来进一步分析第3名的情况?

     ● 如果A2>B1(即第2名为A2),那么根据第6场比赛中的(B1>C1>D1>E1)。 可以断定第3名只能在A3和B1中产生。

     ● 如果B1>A2(即第2名为B1),那么可以断定的第3名只能在A2, B2,C1 中产生。

     好了,结论也出来了,只要我们把[A2、B1、A3、B2、C1]作为第7场比赛的马,那么这场比赛的第2,3名一定是整个25匹马中的第2,3名。

     我们在这里列举出第7场的2,3名次的所有可能情况:

     ①  第2名=A2,第3名=A3

     ②  第2名=A2,第3名=B1

     ③  第2名=B1,第3名=A2

     ④  第2名=B1,第3名=B2

     ⑤  第2名=B1,第3名=C1

 

(4)  第8场比赛很复杂,我们要根据第7场的所有可能的比赛情况进行分析。

      ①  第2名=A2,第3名=A3。那么此种情况下第4名只能在A4和B1中产生。

           ● 如果第4名=A4,那么第5名只能在A5、B1中产生。

           ● 如果第4名=B1,那么第5名只能在A4、B2、C1中产生。

           不管结果如何,此种情况下,第4、5名都可以在第8场比赛中决出。其中比赛马匹为[A4、A5、B1、B2、C1]

      ②  第2名=A2,第3名=B1。那么此种情况下第4名只能在A3、B2、C1中产生。

           ● 如果第4名=A3,那么第5名只能在A4、B2、C1中产生。

           ● 如果第4名=B2,那么第5名只能在A3、B3、C1中产生。

           ● 如果第4名=C1,那么第5名只能在A3、B2、C2、D1中产生。

           那么,第4、5名需要在马匹[A3、B2、B3、C1、A4、C2、D1]七匹马中产生,则必须比赛两场才行,也就是到第9场角逐出全部的前5名。

      ③  第2名=B1,第3名=A2。那么此种情况下第4名只能在A3、B2、C1中产生。

           情况和②一样,必须角逐第9场

      ④  第2名=B1,第3名=B2。 那么此种情况下第4名只能在A2、B3、C1中产生。

           ● 如果第4名=A2,那么第5名只能在A3、B3、C1中产生。

           ● 如果第4名=B3,那么第5名只能在A2、B4、C1中产生。

           ● 如果第4名=C1,那么第5名只能在A2、B3、C2、D1中产生。

            那么,第4、5名需要在马匹[A2、B3、B4、C1、A3、C2、D1]七匹马中产 生,则必须比赛两场才行,也就是到第9场角逐出全部的前5名。

        ⑤  第2名=B1,第3名=C1。那么此种情况下第4名只能在A2、B2、C2、D1中产生。

            ● 如果第4名=A2,那么第5名只能在A3、B2、C2、D1中产生。

            ● 如果第4名=B2,那么第5名只能在A2、B3、C2、D1中产生。

            ● 如果第4名=C2,那么第5名只能在A2、B2、C3、D1中产生。

            ● 如果第4名=D1,那么第5名只能在A2、B2、C2、D2、E2中产生。

             那么,第4、5名需要在马匹[A2、B2、C2、D1、A3、B3、C3、D2、E1]九匹马中 产 生,因此也必须比赛两场,也就是到第9长决出胜负。

 

总结:

25匹马,5个跑道,用几场决出前5名?

对于前3名,7场可以搞定

对于前5名,最好情况可以在第8场,最差也可以在第9场搞定。


同类问题:

36匹马,6个跑道,用几场比赛决出前3名?

答案:8场。(用第7场的结果可以排除一部分结果,只选取可能是排名结果的马参加比赛)。


转载:http://hxraid.iteye.com/blog/662643

图解25匹马的选马问题 题目一:对于25匹马,有一个赛场,赛场有5个跑道,不使用计时器(也就是每次比赛只得到本次的比赛的顺序),试问最少比多少场才能选出最快的三匹马? 阅读详情

相关推荐

阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马

考虑最坏的情况,那么有一个比赛9次的可行解: 25匹马分5组,每组比一次。 然后5个组的冠军再比一次。 共进行了6次比赛,结果如下:下载 (2.03 KB)2010-2-4 18:06 其中,红色马是第一名; 绿色马有机会得第二名; 浅蓝色马有机会得第三名; 深蓝色马有机会得第四名; 紫色马有机会得第五名。 下一场是2匹绿色马和3匹浅蓝色马比赛,可决出第二名和第三名。 例如,一种可能的结果如下:下载 (2.19 KB)2010-2-4 18:06 那么上述结果可以写成:下载

做一个优雅的程序员 2万+

【Google】25匹马的角逐

问题是这样的:一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少 得比多少场才能知道跑得最快的5匹马。   注意: "假设每匹马都跑的很稳定" 的意思是在上一场比赛中A马比B马快,则下一场比赛中A马依然比B马快。   稍微想一下,可以采用一种 竞标赛排序(Tourn...

ccnunlp的专栏 695

【刷题-每天一算法】赛马

阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马? 将马分成A、B、C、D、E五组。 第1-5次比赛:各组分别进行比赛,决出各组名次 A1、A2、A3、A4、A5, B1、B2、B3、B4、B5, 。。。。 。。。。。。E4、E5。 第6次比赛:A1、B1、C1、D1、E1, 第一名是跑的最快的。 第7次比赛:将上次第一名所在...

weixin_41484240的博客 3202

Google面试题(九)

25匹马赛跑,5个跑道,怎么以最少的比赛次数来决出最快的3匹,马跑的时间未知,只知道马的先后顺序. 思想: (1)25匹马分为5组,进行5次赛跑; (2)由5组第一再跑一次,这样可以选出所有马最快的那匹; (3)由最快的那匹的分组中的第二匹、第三匹和步骤(2)中的第一匹,第二匹,以及步骤(2)中的第三快,共五批马再跑一次 总共比赛7次...

akalius的专栏 185

概率论与数理统计基础概念与重要定义汇总

文章目录一、随机事件和概率1:互斥,对立,独立事件的定义和性质。2:概率,条件概率和五大概率公式3:古典型,几何型概率和伯努利试验 一、随机事件和概率 1:互斥,对立,独立事件的定义和性质。 互斥事件\color{red}\textbf{互斥事件}互斥事件 事件A和B的交集为空,A与B就是互斥事件,也叫互不相容事件。也可叙述为:不可能同时发生的事件。如A∩B为不可能事件(A∩B=Φ),那么称事件A与事件B互斥,其含义是:事件A与事件B在任何一次试验中不会同时发生。 则P(A+B)=P(A)+P(B)(这个公

csyifanZhang的博客 1万+

PLC控制气缸与电磁阀:从原理到实战编程详解

在工业自动化领域,很多工程师都能编写PLC程序控制电机启停,但当涉及到气缸和电磁阀的精确控制时,却常常遇到动作不协调、响应延迟甚至设备损坏的问题。这背后的关键不在于PLC编程本身,而在于对气动元件特性和控制逻辑的深入理解。 本文将从实际工程问题出发,深入解析气缸与电磁阀的工作原理、PLC控制逻辑设计、常见故障排查方法,并通过完整的梯形图实例,帮助读者掌握气动系统自动化编程的核心要点。无论你是刚接触PLC的初学者,还是希望提升气动控制技能的工程师,都能从中获得实用的技术指导。 1. 气缸与电磁阀在自动化控制中

weixin_42522374的博客 338

跑马问题

25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马?

MFCJCK的专栏 620

软考软件评测师备考避坑指南:过来人告诉你这5个章节最容易丢分(附2024最新考纲解析)

本文为软考软件评测师考生提供备考避坑指南,深度解析5个高频失分章节,包括标准化与信息化基础、中间件技术、软件测试模型、白盒测试覆盖准则和性能测试指标。文章结合2024最新考纲,分享实战技巧和记忆口诀,帮助考生精准打击失分重灾区,提升备考效率。

weixin_29223603的博客 467

25匹赛马5个跑道算法

25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马 ?

SAN_YUN的专栏 721

Python自动化测试报告:飞书群机器人消息卡片实战

本文详细介绍了如何利用Python和飞书群机器人实现自动化测试报告的智能通知。通过构建可定制的消息卡片,将测试结果(如通过数、失败数)以清晰、美观的格式自动推送至团队群聊,并支持一键跳转查看详细报告,从而显著提升团队协作与问题响应效率。

k6l7m8n9的博客 811

某程token参数逆向分析

作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!

weixin_73499887的博客 2883

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

25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次能比出前3名?前5名? 最近在做笔试的题目时,遇到了这种类型的题目,今天来分析一下解题的思路: 由于有25匹马,5个跑道,每个跑道最多只能有一匹马进行奔跑,那么我们可以将25匹马均分成5组,各组内进行一次较量,假设每组得到的结果由快道慢分别是 \[ \begin{split} &A_1 A_2A_3A_4A_5\\ ...

weixin_30326741的博客 594

[事件相机1]2024CVPR:Event Stream-based Visual Object Tracking: A High-Resolution Benchmark Dataset

作者:Xiao Wang, Shiao Wang, Chuanming Tang, Lin Zhu, Bo Jiang, Yonghong Tian, Jin Tang代码:https://github.com/Event-AHU/EventVOT_Benchmark。

m0_37412775的博客 1707

跑马问题--36匹马,跑道每次最多只能有6匹马进行比赛,最少进行多少次比赛能比出前3名?

一、36匹马赛跑,跑到同时只能容许6匹马。而且36匹马速度不同,但是每次跑的速度恒定。问跑多少次可以选出第一、第二、第三名? 36匹马赛跑,跑到同时只能容许6匹马。而且36匹马速度不同,但是每次跑的速度恒定。问跑多少次可以选出第一、第二、第三名? A. 7 B. 8 C. 9 D. 12 可以分三步走。 (1)第一步,将36匹马分成6组,1次跑一组,跑6次。分别得到每组的排名。 A1, A2, ..., A6; B1, B2, ..., B6; C1, C2, ..., ...

小景的博客 2076

数据结构(超详细讲解!!)第十七节 队列应用(杨辉三角)

杨辉三角

2201_76115387的博客 1376

如何合理评估信号过孔的残桩效应--Via Stub

设计中,之所以会去考察信号过孔的残桩效应(Via Stub),是因为它的存在导致了不需要的频率谐振,当这些谐振出现在所关注的信号通道的插入损耗中时,就会引发较为严重的信号完整性(SI)问题,那么Via Stub到底是如何引发SI问题的呢?

一只豌豆象的博客 4466

笔试面试题:25匹赛马,5个跑道,每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马

该题最早在10月12日360的笔试中见到。作为一道选择题出现  A、7 B、8 C、9 D、10 先给出一种启发式方法 方法一: 1)将25匹马分成5组,进行5场比赛。 2)将每组的第一名放到一起,进行第6场比赛,选出排名第1的马。 3)从(2)中选出的马所在的组选出还未参加比赛的马中速度最快的与(2)中未被选出的马放到一起,进行第7场比赛,选出排名第2的马。此时,若新加入

handongyexue的专栏 9912

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【面试问题】最快的5匹马&malloc底层实现&为什么要进行内存对齐

有25匹马五条跑道,一条跑道一次只能跑一皮马,跑多少次可以选出跑最快的5匹马? 参考文章: https://www.nowcoder.com/questionTerminal/e07d8e0df93b4f6b93a3fadbe72f2c7c linux 中 malloc 底层实现 直接看这篇文章: https://www.cnblogs.com/dongzhiquan/p/5621906.html 为什么要进行内存对齐? 主要可以从 兼容性 和 性能 进行分析,如果不进行内存对齐,可能会: 程序运行的慢

不会编程的程序圆 的博客 529

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

25匹马,5个跑道,最少比多少次能比出前3名和前5名

前三至少需要7次,前五至少8次 详情查看

w135799的博客 1796

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[算法题解] 第一章

算法题解

qq_20528497的博客 227

跑马问题处理

(1)跑马问题 (2)跑马测试

legend050709的专栏 669

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

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

Xu_JL1997的博客 4287

笔试题:赛马问题

文章目录题目描述题解 题目描述 25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次可以比出前5名? 题解 因为有25匹马,而跑道只有5个,最开始通过6场选出第一名的马匹应该是毫无争议的 小组赛: 1 2 3 4 5 A1 A2 A3 A4 A5 1 2 3 4 5 B1 B2 B3 B4 B5 1 2 3 4 5 C1 C2 C3 C4 C5 1 2 3 4 5 D1 D2 D3 D4 D5 1 2 3

Aeroblaze的博客 1258

谷歌面试题:25个人如何在5条跑道上决前三名

谷歌有一个面试题题目很简单,25个人在只有5条跑道上如何用最少的比赛方法决出前三名 这个问题你这样想,5条跑到每个跑道一个人,也就是说最少一组可以同时比5个人,25/5=5也就是可以分成5组. 为了方便我们就假设,分成ABCDE五组,A1,A2,A3,A4,A5代表五个成员,同样B1.... C1...D1....E1....各个成员如下如所示 然后开始比赛,每一列分别进入跑到开始比赛,...

weixin_39831786的博客 5092

面试思考题:25匹马5条跑道选前三

今天第一次面试,腾讯微众银行的web开发岗,除了深刻地认识到自己是个铁five之外,也算是积累了面试经验吧。面试官人还挺好的,看我菜也没有说啥(甚至还安慰我说我还行),面试官最后给我出的那道思考题还是挺有意思的,所以在这分享下: 题干 25匹马和5条跑道,每条跑道只能跑一匹马,只能在肉眼观测的条件下要怎么选出跑得最快的那3匹马,最少要跑几次呢? 思路 马跑了才知道它快不快,所以首先所有马都得跑...

铁five狒狒的博客 3068

25匹马5个跑道,选出最快的5匹马?

回顾之前问题:25匹马5个跑道,怎样选出最快的3匹? 答:先分成5组比赛并组内排序(从1到5速度减慢),再让每组第一名比赛,按照每组第一名的比赛结果从快到慢对每组排序(从A到E速度减慢),此时共计比赛6轮,有: A1 A2 A3 A4 A5 -> A组 B1 B2 B3 B4 B5 -> B组 C1 C2 C3 C4 C5 -> C组 D1 D2 D3 D4 D5 -> D组 E1 E2 E3 E4 E5 -> E组 这时已经得到,25匹马里,最快的是A1,要选出最快

rolling_kitten的博客 4691
上一篇: 桶排序-Bucket Sort
下一篇: 64匹马8个跑道问题
HelloCooper
博客等级 码龄11年 13粉丝 37原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值