题目

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

这道题的答案应该为 (7)次。

5场

  • 首先随机分成五组,
  • 按照比赛结果排序:
  • a1, a2, a3 ,a4 ,a5
  • b1 ,b2 ,b3 ,b4 ,b5
  • c1 ,c2 ,c3 ,c4 ,c5
  • d1 , d2 ,d3 ,d4 ,d5
  • e1, e2 ,e3 ,e4 ,e5
  • 共计5场比赛

第6场:

  • 取每组第一名进行比较。
  • 假设比赛结果为:a1,b1,c1,d1,e1
  • a1, a2, a3 ,a4 ,a5
  • b1 ,b2 ,b3 ,b4 ,b5
  • c1 ,c2 ,c3 ,c4 ,c5
  • d1 , d2 ,d3 ,d4 ,d5
  • e1, e2 ,e3 ,e4 ,e5

第7场:

  • b1a2,a3,a4,a5比较
  • 最好情况b1取得了第五名;
  • 最坏情况b1取得了第一名;
  • 假设比赛结果为最坏情况:b1取得了第一名。
  • 现在前两名的结果已经出来了:a1,b1

第8场:

  • 第三名只会在a2、b2、c1中产生
  • 为了不浪费资源我们把d1、e1也加进去
  • c1、d1、e1的顺序是不会变的,只要把a2、b2插进去就可以了。
  • 任何一匹马排在最后两名,该组所有马可以排除在外了。
  • 我们取一种情况:c1、d1、e1、a2、b2
  • a组、b组的马排除在外。
  • 第三名为c1

第9场:

  • 第四名只会在d1、c2中产生
  • 第五名只会在e1、d2、c3中产生。
  • 让d1、c2、e1、d2、c3比赛
  • 第四名为本场比赛的冠军,第五名为本场比赛的亚军

综上所述最好的情况要比7次,最坏的情况要比9次。

赛马问题--最全面的解析相关推荐

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

    目录 常规思路 正确答案解析 第一轮:8场 第二轮:1场 第三轮:1场或2场 总结 引子:在面试大厂时,怎么也没想到会考我一道脑筋急转弯. 问题:有64匹马和8条跑道,每次只允许最多8匹马同时比赛(假 ...

  2. 赛马网ACM试题(原杭电oj ACM)java版答案(1000,10001,1002)

    赛马网ACM试题(原杭电OJ ACM试题)答案(java版) Author : Zhang Hailong   Date   : 2015-09-17    HomePage : http://  E ...

  3. 老王赛马!!!(题目有漏洞哦)

    赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为"战国时期".在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都. 赛马是当时最受齐 ...

  4. golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用

    RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...

  5. List元素互换,List元素转换下标,Java Collections.swap()方法实例解析

    Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...

  6. 条形码?二维码?生成、解析都在这里!

    二维码生成与解析 一.生成二维码 二.解析二维码 三.生成一维码 四.全部的代码 五.pom依赖 直接上代码: 一.生成二维码 public class demo {private static fi ...

  7. Go 学习笔记(82)— Go 第三方库之 viper(解析配置文件、热更新配置文件)

    1. viper 特点 viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式.支持特性功能如下: 设置默认值 读取 JSON.TOML.Y ...

  8. Go 学习笔记(77)— Go 第三方库之 cronexpr(解析 crontab 表达式,定时任务)

    cronexpr 支持的比 Linux 自身的 crontab 更详细,可以精确到秒级别. ​ 1. 实现方式 cronexpr 表达式从前到后的顺序如下所示: 字段类型 是否为必须字段 允许的值 允 ...

  9. mybatis配置文件解析

    mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...

  10. 谷歌BERT预训练源码解析(二):模型构建

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...

最新文章

  1. Ubuntu换回Gnome界面
  2. React文档(六)state和生命周期
  3. java中声明内部类变量,java – 从内部类中访问变量(dialogView),需要声明final
  4. Codeforces 758C. Unfair Poll
  5. 使用Charles在iOS6上进行抓包
  6. jsp 中forward 和 Redirect 的用法区别
  7. 编写图形界面程序,接受用户输入的5个浮点数据和一个文件目录名,将这五个数据保存在该文件中,再从文件中读取出来并且进行从大到小排序,然后再一次追加保存在该文件中。
  8. 动态开点线段树(多棵线段树)的内存分配与回收
  9. linux运维和3dmax哪个简单,牛逼运维常用的工具系列-2
  10. 这个点名系统太好用了,快来看看……
  11. 非对称加密 公钥私钥_选择Java加密算法第3部分–公钥/私钥非对称加密
  12. centos 7 Hadoop2.7.4完全分布式搭建(一)
  13. python 文件操作不被打断_python学习六文件操作和异常处理
  14. 算法笔记 --- 布隆过滤器
  15. (EPROCESS/KPROCESS/ETHREAD/KTHREAD)进程与线程内核层中的结构
  16. F5 BIG-IP LTM基础资料
  17. 实战案例分享:我用 Python 预测房价走势
  18. 【宋红康 MySQL数据库 】【高级篇】【07】MySQL的存储引擎
  19. 春季高考计算机专业知识归纳,春季高考计算机试题总结.doc
  20. java计算机毕业设计教务管理系统源码+数据库+系统+lw文档+mybatis+运行部署

热门文章

  1. 理论篇-Linux---RAID磁盘阵列与阵列卡
  2. python null类型
  3. 解决Win7安装C++ Redistributable2015失败
  4. 理解Liang-Barsky裁剪算法的算法原理
  5. 2、spss做均值比较分析
  6. 计算机文件夹怎样显示隐藏文件,显示隐藏文件夹,教您电脑如何显示隐藏文件夹...
  7. Xilinx浮点数IP核使用记录
  8. WMB入门之十:Java Compute节点
  9. UVALive3713-Astronauts 2-SAT
  10. 卡尔加里大学计算机世界排名,2020年卡尔加里大学计算机科学专业本科申请条件-学费-世界排名...