写在前面:最近在刷面试题的过程中遇到这么一道题,感觉解读题目的角度很多,这里介绍自己的做法。注意:本文并不是参考答案,只是为大家在面试的时候多提供一条思路,或许可以获得面试官的青睐。

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

1 - 一些假设

同一马匹在任意场次的速度都能保持一致。

2 - 前 3 名分析

  1. 将 25 匹马分为 5 个小组,每个小组跑一场,共 5 场比赛。假设决出的顺序如下图:

    组A 组B 组C 组D 组E
    A1 B1 C1 D1 E1
    A2 B2 C2 D2 E2
    A3 B3 C3 D3 E3
    A4 B4 C4 D4 E4
    A5 B5 C5 D5 E5
  2. 取每个小组的第一名跑一场,假设决出的顺序为 A1 > B1 > C1 > D1 > E1,则 A1 是第一名,剔除掉没有希望进入前 3 的马匹后,排序表变为:

    组A 组B 组C 组D 组E
    - B1 C1 - -
    A2 B2 - - -
    A3 - - - -
    - - - - -
    - - - - -

    容易发现,刚好只剩下 5 匹马,可以在一场比赛跑完。

  3. 结果就是 5 + 1 + 1 = 7 场。

3 - 前 5 名分析

  1. 和前 3 名的分析类似,分成 5 个小组,5 个小组的第一名再跑一场,决出第一名后剔除没有机会进入前 5 的马匹,排序表如下:

    组A 组B 组C 组D 组E
    - B1 C1 D1 E1
    A2 B2 C2 D2 -
    A3 B3 C3 - -
    A4 B4 - - -
    A5 - - - -

    注意到 B1 是 BCDE 四组中最快的马,但是 B1 和 A 组剩下的马的快慢暂不得知。B1 与 A 组马的顺序将会直接影响接下来需要跑的场次。

  2. 让 A 组剩下的 4 匹马和 B1 跑一场,则可能出现如下结果:

    结果 1 结果 2 结果 3 结果 4 结果 5
    A2 A2 A2 A2 B1
    A3 A3 A3 B1 A2
    A4 A4 B1 A3 A3
    A5 B1 A4 A4 A4
    B1 A5 A5 A5 A5

    容易发现,由于 B1 的特殊性,结果 1 和结果 2 其实已经决出了前 5 的马匹(包括 A1),结果 3 决出了前 4 的马匹,结果 4 决出了前 3 的马匹,结果 5 决出了前 2 的马匹。

  3. 所以最少需要 5 + 1 + 1 = 7 场。(题目到这里就可以结束了)

  4. 结果 1 和结果 2 具有偶然性,出现其他结果时的情况比较复杂,但是考虑到每场都会至少确定 1 个名次,那么实际上最多 5 + 5 =10 场就能确定前 5 。

4 - 拓展

64匹马,8条跑道,决出前4名?

  1. 分 8 组,决出第一名之后剔除不能进入前 4 的马匹,如下:

    组A 组B 组C 组D 组E
    - B1 C1 D1 - -
    A2 B2 C2 - - -
    A3 B3 - - - -
    A4 - - - - -

    还剩 9 匹马,一次跑不完。

  2. 笔者的考虑是第 10 场先不安排A4、B3、C2、D1中的某一匹,因为这 4 匹马相对较慢,很大几率不会入选前 4,根据结果来确认是否需要第 11 场。比如,第 10 场 D1 没有上场,如果(速度比 D1 快的)B1 或者 C1 不在前 3,那么 D1 就没有再上场的必要了。反之,若 B1、C1分别是第 2 、第 3 名,那么 D1 还是有机会争一争第 4 的。
  3. 所以按这个思路,最多 11 场,最少 10 场就能确认前 4。

再次强调:本文不是标准答案,请勿擅自曲解笔者意思。最后,祝大家面试顺利~


正文结束,欢迎留言讨论。

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

  1. 面试题:25匹马最快3匹及扩展

    描述: 在25匹马里,只有五条赛道,在没有计时工具的情况下,选最快的三匹?  (只能得出相对快慢) 两个扩展: 最快5匹呢, 有30匹马呢 1. 基本思路(找最快3匹马) 先确定第一名(用6场): 分 ...

  2. 25匹马,5个跑道,最少比几次可以得出跑得最快的前三匹吗?

    算法思路: 首先将25匹马分成5个小组,分别为A, B, C, D, E,比赛次数5次: 每个小组都分别进行比赛,分别得到前两名,分别为A1,A2, B1, B2, C1, C2, D1, D2, E ...

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

    题目描述 64匹马,8个跑道,需要赛多少场,选出最快的四匹马? 题目分析 题目本身是含义不清楚的,但是既然是程序员面试题,隐含条件是: 1.不能计时: 2.在最坏的情况下,至少多少轮比赛,必然能选择出 ...

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

    回顾之前问题:25匹马5个跑道,怎样选出最快的3匹? 答:先分成5组比赛并组内排序(从1到5速度减慢),再让每组第一名比赛,按照每组第一名的比赛结果从快到慢对每组排序(从A到E速度减慢),此时共计比赛 ...

  5. BAT面试题9:谈谈判别式模型和生成式模型?

    BAT面试题9:谈谈判别式模型和生成式模型? https://mp.weixin.qq.com/s/X7zWJCMN7gbCwqskIIpLcw 判别方法:由数据直接学习决策函数 Y = f(X),或 ...

  6. BAT面试题13:请简要说说一个完整机器学习项目的流程

    BAT面试题13:请简要说说一个完整机器学习项目的流程 https://mp.weixin.qq.com/s/HiqC1MCb5TEBUxjiYvB7bA 摘要:本文描述机器学习任务的"OO ...

  7. 面试题25: 合并两个排序的链表

    /******************************************************************* *<剑指Offer--名企面试官精讲典型编程题>C ...

  8. java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大。

    java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大. A:正确 B:错误 蒙蔽树上蒙蔽果,蒙蔽树下你和我 拿到这道题,我觉得说的贼有道理,注释太多,尺寸变大.无疑与就和驾考 一样, ...

  9. java 大流量高并发_【BAT面试题】如何应对大流量、高并发??

    这是一道BAT大厂的面试题 所谓高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈. 常用的高并发处理的思路与手段 从服务端视角看高并发 ...

最新文章

  1. python 自动化微信小程序_appium+python自动化56-微信小程序自动化(摩拜为例)
  2. Python使用request包请求网页乱码解决方法
  3. System.Net.WebException: The operation has timed out at System.Net.HttpWebRequest.GetResponse()
  4. vlc android 移植版编译
  5. nginx服务器,访问时显示目录,不直接显示index.php
  6. 设计类超实用的导航网站,一网包含1000+个行业内热门资讯灵感源!
  7. python实时数据存储与显示_利用python进行数据加载和存储
  8. Bash脚本和/ bin / bash ^ M:错误的解释器:没有这样的文件或目录[重复]
  9. 2022年信息安全工程师考试大纲
  10. 【zigbee无线通信模块步步详解】ZigBee3.0模块建立远程网络控制方法
  11. 安防经济逐渐景气下行 安企是否能排除万难冲出阴霾?
  12. 您全面了解“含胸拔背”吗?
  13. 驾校考试科目二完整流程
  14. java计算机毕业设计ssm+vue心理咨询网站
  15. 360安全浏览器如何锁定极速模式
  16. 2019年5月25更新——“运动世界校园”软件破解
  17. DAY5 C高级笔记
  18. 双 JK 触发器 74LS112 逻辑功能。真值表_【第十章】触发器和事件
  19. Go:pythagoras毕达哥拉斯算法(附完整源码)
  20. 解决无法找到winRAR.exe

热门文章

  1. [Eclipse]GEF入门系列(二、GEF概述)
  2. arduino智能浇花系统_基于Arduino单片机的智能浇花器
  3. 【iOS 1 行代码系列】之 一行代码搞定TableView组头悬停
  4. 【思维进阶】《高效能人士的七个工作习惯》读书笔记
  5. storyboard(故事版)新手教程 图文详解 4.把约束拉成属性 在代码文件里进行修改
  6. 小米基于OpenStack搭建私有云平台技术架构大揭秘!
  7. 英特尔芯片漏洞比想象中更严重:控制计算机无需密码
  8. re匹配截至到第一个中文_Python中的正则表达式(re模块)!非常重要!
  9. 9月20日科技联播:美团今日上市估值超小米京东;阿里巴巴获杭州第一张自动驾驶牌照...
  10. 信息安全CIA三要素