面试题:赛马问题(超级清晰详细)
文章目录
- 一、故事背景
- 二、分析
- 1、第一轮(8场)
- 2、第二轮(1场)
- 3、第三轮(1场/2场)
- 情况一:比1场
- 情况二:比2场
- 总结
- 点个关注再走呗~
一、故事背景
事情是这样的:
传说中,一群拥有枯燥生活的人们,来参加一场跑步比赛,当然,不是他们自己跑,他们每个人带着他们的马,一共64个人,带来了
64匹马
,但是这个比赛方很奇怪,忘记准备秒表等计时工具了,此时比赛方就很焦急啊,急忙找现场的高手帮忙出谋划策,比赛方给出的限制是:“跑道每次只允许8匹马
同时比(因为只有8条跑道
)”,问怎么决出跑的最快的4匹马?同时,为了把握比赛的时长,还需要知道最多要跑几次才能决出前4名?
二、分析
1、第一轮(8场)
先把64匹马随机分为8组并标记组别,总共比8场,并同时记录每组中各马的名次。直接剔除掉每组的后4匹马(因为每组后4匹马不可能是top4),剩下32匹马待定。
有没有人有疑问,为什么可以直接剔除每组的后4匹马?为什么每组后4匹马不可能是top4?
因为我们的目的就是找出前4名,我们就简单按字面理解,它都在后4位了,肯定直接一把梭,把它们剔除掉就行了。
此时就剩下32匹马待定。
2、第二轮(1场)
现在还是有8组,每组就剩下4匹马,选出每组第1的马比一场,记录结果,按名次记录排序(最强为A1
,其次B1
、C1
、D1
、E1
…),选出前4组(A
、B
、C
、D
)
为什么选出前4组?
因为后4组无论如何无法top4,怎么理解呢?此时这一轮比完,8组中只有排名前4的组才有可能进入top4,说白了,某组第1都没办法进前4,那么这整个组中所有马都不可能进前4的。
此时就剩下16匹马待定。
A1
|
B1
|
C1
|
D1
|
---|---|---|---|
A2
|
B2
|
C2
|
D2
|
A3
|
B3
|
C3
|
D3
|
A4
|
B4
|
C4
|
D4
|
接下来对这16匹马再次进行分析。
因为A1
、B1
、C1
、D1
为各组最快,所以D2
、D3
、D4
肯定无缘top4
补充理解:
假如A1
、B1
、C1
、D1
就是前4,那么D2
、D3
、D4
都是比D1
要慢的。所以可以直接剔除D2
、D3
、D4
。(注意:这里没办法知道
D2
、D3
、D4
三者之间的排名顺序的!)
现在就剩13匹待定。
如果top4为A1
、B1
、C1
、C2
,那么C3
、C4
肯定无缘top4,因为C3
、C4
比 C2
还慢。剔除他们。
现在就剩11匹待定。
如果top4为A1
、B1
、B2
、B3
,那么B4
无缘top4,因为B4
比B3
还慢(跟上面分析同理),剔除B4
。
现在就剩10匹待定。
A1
|
B1
|
C1
|
D1
|
---|---|---|---|
A2
|
B2
|
C2
|
|
A3
|
B3
|
||
A4
|
特别注意:
现在只能证明
A1
>B1
>C1
>D1
;
而不能证明类似于A2
>B1
,或者B2
>C1
这种,也无法证明类似于A2
>A3
>A4
这种。
好了,现在A1
为全场最佳,所以我们先把它放在一旁不管,所以现在剩下9匹待定。
现在问题就变成了9匹决出前3匹(第[2,4]
名),待会再加上第一名A1
,就组成top4了!
现在离分析的结果也越来越接近了。
3、第三轮(1场/2场)
这里为什么有两种情况呢,因为这里存在不确定性,毕竟,你又不能去控制马跑多快,是吧。
所以我们分情况来讨论。
剩下9匹马,因为只有8个跑道,所以选出8匹去比,那么怎么选呢?
最好选择“边缘人”,什么是“边缘人”呢,就是在淘汰边缘的,而这里,D1
的位置是最尴尬的。因为ABC组里的非第1的马,随时可能把D1
挤出局。
所以接下来让A2
、A3
、A4
、B1
、B2
、B3
、C1
、C2
去比。
情况一:比1场
如果C1
是本组的第4~7名,则整体2~4名应为本组前3(无C1
),构成top4。结束!
情况二:比2场
如果C1
是本组的第2名,因为B1
一定>C1
,所以此时B1
为本组第一名,即此时全场top3为A1
>B1
>C1
。
然后剩下7匹马,再一起上场比一次(A2
、A3
、A4
、B2
、B3
、C2
、D1
),一决高低,选出本组最强选手,与A1
、B1
、C1
一起组成top4。
注:本组第1名为整体第4名。
总结
所以对于问题“怎么决出跑的最快的4匹马”
,上面已经详细分析了,然后对于“需要跑几次”
这个问题,答案是
- 8+1+1=10次
- 8+1+2=11次
点个关注再走呗~
如果这篇文章有帮助到你,别忘了关注点赞在看一键三连哦!
我是啊泽,一枚在鹅厂
搬砖的实习生,关注我,不断为你分享各种干货,我的经历经验,或许可以给你带来意想不到的帮助,更多干货内容请关注本公众号:“啊泽 Coding
”,扫描下方二维码关注我吧!
面试题:赛马问题(超级清晰详细)相关推荐
- Codeforces Round #698 (Div. 2) D. Nezzar and Board(一步步推出来,超级清晰,不猜结论,看不懂来打我 ~ 好题 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! D - Nezzar and Board Problem A Nezzar and Board 我们在黑板上写了 nnn 个数,x1,x2 ...
- Liunx实现超级签名详细攻略(一)超级签名简介
本文将从零开始详细讲解在Liunx中完全自动化实现超级签名流程. iOS超级签名: 主要目的: 把开发的APP不通过App Store安装到用户手机中. 优点: 不用上架App Store,稳定不掉签 ...
- SpringBoot 自动配置原理(超级无敌详细)-2
SpringBoot 自动配置原理(超级无敌详细)-1 2.自动配置的实现 刚刚我们整体的过了一下主配置文件是如何实现的,但我们还没深入的研究如何实现自动装配功能.我们回到这个文件下,找一个具体的自动 ...
- hadoop +hbase+zookeeper 伪分布安装(超级无敌详细)
hadoop +hbase+zookeeper 伪分布安装(超级无敌详细) hadoop 配置 图片打不开的可以点击下方链接直接去图床查看,辣鸡CSDN 安装jdk sudo apt update// ...
- BIGGAN代码以及训练参数,超级清晰版(CIFAR10数据集生成)
BIGGAN代码以及训练参数,超级清晰版 模型代码: 如何使用 超级清晰版 模型代码: import torch.nn as nn from torch.nn.utils import spectra ...
- HTML_超级链接详细讲解
HTML 超级链接详细讲解: http://www.jb51.net/web/10637.html 以上这篇简单易懂,30min全部看完,很好的html入门,主要讲了超级链接,以下是练习部分代码: & ...
- 【超级无敌详细的黑马前端笔记!即时更新~】
[超级无敌详细的黑马前端笔记!即时更新~] 这个笔记,是我自己在同步学习黑马前端使用的,不可以商用哦 学习路径 基础概念铺垫(了解) 认识网页 五大浏览器和渲染引擎 Web标准 HTML初体验 HTM ...
- P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4619 [SDOI2018]旧试题(莫比乌斯反演,三元环计数) Problem 计算: ∑i=1A ...
- Java面试笔试题大汇总(最全+详细答案)
声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个 ...
最新文章
- mysql 常用函数循环_近30个MySQL常用函数,看到就是学到,纯干货收藏!
- eclipse配置springboot开发
- Linux系统抓包回放,Linux下24小时持续网络抓包(TCPDUMP)
- weedfs java_初窥weedfs分布式文件系统
- 智能机器人及其应用ppt课件_智能工业机器人应用再获成功!
- 议rman的crosscheck和obsolete
- Intellij IDEA2017 的控制台里不识别maven命令问题处理
- Wireshark 3.0.0 正式版发布,免费开源的网络数据包分析软件
- MS UC 2013-2-Deploy Microsoft Exchange Server 2013-1-Prerequisites
- Wireshark实战分析之ARP协议(一)
- 计算机技术未来的研究热点,计算机科学前沿热点及发展趋势
- 麦子学院C++学习笔记
- 460.LFU 缓存
- js插件--1.swal
- facebook、twitter、facebook登录、whatsapp分享、微信分享
- 基于词典的细粒度情感分析
- 付费计算机毕业论文毕业设计课程设计
- Nessus配置及使用说明
- Android中文开发教程()
- 左中右 三栏式 布局
热门文章
- 零基础小白的大数据入门手册
- php管理系统申请著作权,php管理系统申请著作权-我有一套PHP源码系统,想修改网站底部版权信息,可......
- 主键、唯一键、外键、
- THREE.js实现蝴蝶随机方向飞舞(飞行过程中可随机改变方向)
- 乐鑫esp8266学习rtos3.0笔记第6篇:esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官网之上增加dns域名解析!(附带demo)
- 云服务器DDOS攻击如何防御
- 【算法面试必刷JAVA版三】链表中的节点每k个一组翻转
- 小米note 3 Android8.1一键刷机,刷机教程
- DJI Manifold使用经验及DJI-OnboardSDK开发血泪史1
- 问题解决 Cannot calibrate from current position