目录

  • 常规思路
  • 正确答案解析
    • 第一轮:8场
    • 第二轮:1场
    • 第三轮:1场或2场
    • 总结

引子:在面试大厂时,怎么也没想到会考我一道脑筋急转弯。

问题:有64匹马和8条跑道,每次只允许最多8匹马同时比赛(假定每匹马每次比赛速度相同),但是没有秒表不能计时,问最少要比多少次,才能选出最快的4匹马?

原文链接:腾讯面试-赛马问题

常规思路

因为每匹马都至少得跑一次,而我们只需要选出最快的4匹,所以首先肯定得跑8场,每场淘汰4匹马。之后我们很容易想到将两组获胜的4匹马进行组合比赛,就可找到最快的4匹马

这样解题,共需4轮15次,但不是最优解。

正确答案解析

第一轮:8场

把64匹马随机分为8组,总共比8场,淘汰每组后4名。为方便可视,我将马进行标记组别并同时记录每组中各马的名次。

第二轮:1场

在8组中选每组第1名的马进行比赛,按名次排序(重新对马进行标记,第一名为A1,其次为B1、C1、D1…)。

这时A1为全场最快,直接晋级。同时知道A1>B1>C1>D1>E1>F1>G1>H1,并且由第一轮的结果可知D1>D2>D3>D4。
因为总共需要选出4匹,综上可得出A1>B1>C1>D1>D2>D3>D4,所以D2、D3、D4一定被淘汰。同理,B4、C3-4、D2-4、E1-4、F1-4、G1-4、F1-4被淘汰。

第三轮:1场或2场

目前已知A1为全场最快,已经晋级。现在需要在A2-4、B1-3、C1-2、D1这9匹马(只有8条跑道)中选择最快的3匹,同时知道B1>C1>D1。这时D1是最危险的,因为已经知道有两匹马比它快,我们选择除了D1之外的8匹马进行比赛

加赛的情况:

如果C1以第二名的成绩晋级(除D1比赛中的第二名,已知B1>C1,所以C1不可能是第一名),那么最终第三名(除D1比赛中的第三名)在A2-4、B2-3、C2中产生,并不能知道D1与它们的快慢,所以需要D1与A2-4、B2-3、C2共7匹马再进行一次比赛,第一名进入TOP4(是总成绩中的第四名)。

不加赛的情况:

如果C1以第三至七名的成绩完赛(除D1的比赛,已知C1>D1,所以C1不可能是第八名),那么除D1这8匹马中的前三名就直接进入TOP4(总成绩中的第二、三、四名),无需进行加赛。

总结


在前两轮后我们知道B1>C1>D1,也知道A2>A3>A4。同理,我们也可以将A4排除,让A2-3、B1-3、C1-2、D1这8匹马进行比赛,再以A3的排名进行分情况讨论。

原文链接:腾讯面试-赛马问题

注:转载请联系作者获得授权,出自公众号:AI有温度,扫码关注,欢迎各位。

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

  1. 腾讯面试题:64匹马,8赛道,找出最快的4匹最少要几次?

    本文转载自 小K算法 01 故事起源 有64匹马,8条赛道,要找出最快的4匹马,最少要几次呢? 补充: 1.不能计时哈,不然就没有意义了,题目就是要考察逻辑推理 2.默认马的速度不变哈,这是理想的数学 ...

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

    昨天,有网友私信我,说去阿里面试,彻底的被打击到了.问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题.无独有偶,今天笔 ...

  3. 转 :2019年Java大厂面试(吐血超详细总结)

    2019年Java大厂面试(吐血超详细总结) 本文来自于慕课网手记:Java大厂面试(吐血超详细总结),转载请保留链接 ;) 转载自:https://www.imooc.com/article/286 ...

  4. 超详细图解!【MySQL进阶篇】存储过程,视图,索引,函数,触发器

    超详细图解![MySQL进阶篇]存储过程,视图,索引,函数,触发器 1.1 下载Linux 安装包 1.2 安装MySQL 1.3 启动 MySQL 服务 1.4 登录MySQL 2\. 索引 2.1 ...

  5. 超大超详细图解,让你掌握Spark memeoryStore内存管理的精髓

    摘要:memoryStore主要是将没有序列化的java对象数组或者序列化的byteBuffer放到内存中. 本文分享自华为云社区<spark到底是怎么确认内存够不够用的?超大超详细图解!让你掌 ...

  6. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

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

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

  8. 粒子群(PSO)、量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题

    粒子群(PSO).量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题. 可用于负荷预测,风电功率预测,光伏发电预测等时序序列,matlab ...

  9. 7-1 h0168. 田忌赛马分数 10作者 黄正鹏单位 贵州工程应用技术学院田忌与齐王赛马,双方各有n匹马参赛,每场比赛赌注为200两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马

    7-1 h0168. 田忌赛马 分数 10 全屏浏览题目 切换布局 作者 黄正鹏 单位 贵州工程应用技术学院 田忌与齐王赛马,双方各有n匹马参赛,每场比赛赌注为200两黄金,现已知齐王与田忌的每匹马的 ...

最新文章

  1. 如何避免重构带来的危险
  2. 袖口里的“超能力”:Facebook腕带式AR传感器,可隔空打字、操控界面,LeCun点赞...
  3. 这个搞定系统监控的妙招,不来学可惜了
  4. MySQL 锁的相关知识 | lock与latch、锁的类型、简谈MVCC、锁算法、死锁、锁升级
  5. windows iis 部署 django项目
  6. python创建矩阵_python中Numpy的属性与创建矩阵
  7. 将指定文件中的空格或换行删除(可选是否创建一个新文件)
  8. AutoIt:工具栏中没有其它工具,eg,Koda
  9. 抖音康辉机器人_央视主持人太会玩!康辉录抖音,笑死了!
  10. mysql 环比 同比_MySQL统计同比环比SQL
  11. 计算机专业社会调研怎么写,计算机专业调研论文提纲格式 计算机专业调研论文提纲怎么写...
  12. 如果兔子拼命奔跑 乌龟怎么办
  13. Angular 路由(routing)基本配置
  14. 从技术面试官的角度谈谈简历和面试那些事儿
  15. Citespace的英文文献数据导入
  16. Python用while循环,打印9*9乘法表
  17. R7000P进入ubuntu18.04黑屏问题
  18. JavaScript 事件和事件类型
  19. 网络基础设施的相对落后对于信息化社会的快速发展的影响
  20. easyui datagrid 多列checkbox

热门文章

  1. (转载)stdio.h、iostream.h和iostream的区别
  2. 动物宠物领养网站的设计与实现(Vue+Spring Boot+Java)
  3. 【元胞自动机】基于matlab元胞自动机3D森林火灾模型【含Matlab源码 656期】
  4. 如何快速制作PCB线路板?
  5. 自己整理的关于随机信号分析的思维导图
  6. 计算机网络知识点总结——第六章应用层
  7. DOS命令大全(转载)
  8. 2020阿里前端岗暑期实习面试经历
  9. 计算机网络自顶向下方法 习题参考答案 第四章
  10. PyQt5制作简单的 数据标注 工具(分类用)