赛马问题--最全面的解析
题目
一共有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场:
- 用b1与a2,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次。
赛马问题--最全面的解析相关推荐
- 腾讯面试:赛马问题【超详细图解】64匹马,8个赛道,找出前4名最少比赛多少场?
目录 常规思路 正确答案解析 第一轮:8场 第二轮:1场 第三轮:1场或2场 总结 引子:在面试大厂时,怎么也没想到会考我一道脑筋急转弯. 问题:有64匹马和8条跑道,每次只允许最多8匹马同时比赛(假 ...
- 赛马网ACM试题(原杭电oj ACM)java版答案(1000,10001,1002)
赛马网ACM试题(原杭电OJ ACM试题)答案(java版) Author : Zhang Hailong Date : 2015-09-17 HomePage : http:// E ...
- 老王赛马!!!(题目有漏洞哦)
赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为"战国时期".在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都. 赛马是当时最受齐 ...
- golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用
RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...
- List元素互换,List元素转换下标,Java Collections.swap()方法实例解析
Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...
- 条形码?二维码?生成、解析都在这里!
二维码生成与解析 一.生成二维码 二.解析二维码 三.生成一维码 四.全部的代码 五.pom依赖 直接上代码: 一.生成二维码 public class demo {private static fi ...
- Go 学习笔记(82)— Go 第三方库之 viper(解析配置文件、热更新配置文件)
1. viper 特点 viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式.支持特性功能如下: 设置默认值 读取 JSON.TOML.Y ...
- Go 学习笔记(77)— Go 第三方库之 cronexpr(解析 crontab 表达式,定时任务)
cronexpr 支持的比 Linux 自身的 crontab 更详细,可以精确到秒级别. 1. 实现方式 cronexpr 表达式从前到后的顺序如下所示: 字段类型 是否为必须字段 允许的值 允 ...
- mybatis配置文件解析
mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...
- 谷歌BERT预训练源码解析(二):模型构建
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...
最新文章
- Ubuntu换回Gnome界面
- React文档(六)state和生命周期
- java中声明内部类变量,java – 从内部类中访问变量(dialogView),需要声明final
- Codeforces 758C. Unfair Poll
- 使用Charles在iOS6上进行抓包
- jsp 中forward 和 Redirect 的用法区别
- 编写图形界面程序,接受用户输入的5个浮点数据和一个文件目录名,将这五个数据保存在该文件中,再从文件中读取出来并且进行从大到小排序,然后再一次追加保存在该文件中。
- 动态开点线段树(多棵线段树)的内存分配与回收
- linux运维和3dmax哪个简单,牛逼运维常用的工具系列-2
- 这个点名系统太好用了,快来看看……
- 非对称加密 公钥私钥_选择Java加密算法第3部分–公钥/私钥非对称加密
- centos 7 Hadoop2.7.4完全分布式搭建(一)
- python 文件操作不被打断_python学习六文件操作和异常处理
- 算法笔记 --- 布隆过滤器
- (EPROCESS/KPROCESS/ETHREAD/KTHREAD)进程与线程内核层中的结构
- F5 BIG-IP LTM基础资料
- 实战案例分享:我用 Python 预测房价走势
- 【宋红康 MySQL数据库 】【高级篇】【07】MySQL的存储引擎
- 春季高考计算机专业知识归纳,春季高考计算机试题总结.doc
- java计算机毕业设计教务管理系统源码+数据库+系统+lw文档+mybatis+运行部署
热门文章
- 理论篇-Linux---RAID磁盘阵列与阵列卡
- python null类型
- 解决Win7安装C++ Redistributable2015失败
- 理解Liang-Barsky裁剪算法的算法原理
- 2、spss做均值比较分析
- 计算机文件夹怎样显示隐藏文件,显示隐藏文件夹,教您电脑如何显示隐藏文件夹...
- Xilinx浮点数IP核使用记录
- WMB入门之十:Java Compute节点
- UVALive3713-Astronauts 2-SAT
- 卡尔加里大学计算机世界排名,2020年卡尔加里大学计算机科学专业本科申请条件-学费-世界排名...