文章目录

  • 一、故事背景
  • 二、分析
    • 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,其次B1C1D1E1…),选出前4组(ABCD

为什么选出前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匹马再次进行分析。

因为A1B1C1D1 为各组最快,所以D2D3D4肯定无缘top4

补充理解
假如A1B1C1D1 就是前4,那么D2D3D4都是比D1要慢的。所以可以直接剔除D2D3D4

注意:这里没办法知道D2D3D4三者之间的排名顺序的!

现在就剩13匹待定。

如果top4为A1B1C1C2,那么C3C4肯定无缘top4,因为C3C4C2还慢。剔除他们。

现在就剩11匹待定。

如果top4为A1B1B2B3,那么B4无缘top4,因为B4B3还慢(跟上面分析同理),剔除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挤出局。

所以接下来让A2A3A4B1B2B3C1C2 去比。

情况一:比1场

如果C1是本组的第4~7名,则整体2~4名应为本组前3(无C1),构成top4。结束!

情况二:比2场

如果C1是本组的第2名,因为B1一定>C1,所以此时B1为本组第一名,即此时全场top3为A1>B1>C1

然后剩下7匹马,再一起上场比一次(A2A3A4B2B3C2D1),一决高低,选出本组最强选手,与A1B1C1一起组成top4。

注:本组第1名为整体第4名。

总结

所以对于问题“怎么决出跑的最快的4匹马”,上面已经详细分析了,然后对于“需要跑几次”这个问题,答案是

  • 8+1+1=10次
  • 8+1+2=11次

点个关注再走呗~

如果这篇文章有帮助到你,别忘了关注点赞在看一键三连哦!



我是啊泽,一枚在 鹅厂 搬砖的实习生,关注我,不断为你分享各种干货,我的经历经验,或许可以给你带来意想不到的帮助,更多干货内容请关注本公众号:“啊泽 Coding”,扫描下方二维码关注我吧!

面试题:赛马问题(超级清晰详细)相关推荐

  1. Codeforces Round #698 (Div. 2) D. Nezzar and Board(一步步推出来,超级清晰,不猜结论,看不懂来打我 ~ 好题 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! D - Nezzar and Board Problem A Nezzar and Board 我们在黑板上写了 nnn 个数,x1,x2 ...

  2. Liunx实现超级签名详细攻略(一)超级签名简介

    本文将从零开始详细讲解在Liunx中完全自动化实现超级签名流程. iOS超级签名: 主要目的: 把开发的APP不通过App Store安装到用户手机中. 优点: 不用上架App Store,稳定不掉签 ...

  3. SpringBoot 自动配置原理(超级无敌详细)-2

    SpringBoot 自动配置原理(超级无敌详细)-1 2.自动配置的实现 刚刚我们整体的过了一下主配置文件是如何实现的,但我们还没深入的研究如何实现自动装配功能.我们回到这个文件下,找一个具体的自动 ...

  4. hadoop +hbase+zookeeper 伪分布安装(超级无敌详细)

    hadoop +hbase+zookeeper 伪分布安装(超级无敌详细) hadoop 配置 图片打不开的可以点击下方链接直接去图床查看,辣鸡CSDN 安装jdk sudo apt update// ...

  5. BIGGAN代码以及训练参数,超级清晰版(CIFAR10数据集生成)

    BIGGAN代码以及训练参数,超级清晰版 模型代码: 如何使用 超级清晰版 模型代码: import torch.nn as nn from torch.nn.utils import spectra ...

  6. HTML_超级链接详细讲解

    HTML 超级链接详细讲解: http://www.jb51.net/web/10637.html 以上这篇简单易懂,30min全部看完,很好的html入门,主要讲了超级链接,以下是练习部分代码: & ...

  7. 【超级无敌详细的黑马前端笔记!即时更新~】

    [超级无敌详细的黑马前端笔记!即时更新~] 这个笔记,是我自己在同步学习黑马前端使用的,不可以商用哦 学习路径 基础概念铺垫(了解) 认识网页 五大浏览器和渲染引擎 Web标准 HTML初体验 HTM ...

  8. P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4619 [SDOI2018]旧试题(莫比乌斯反演,三元环计数) Problem 计算: ∑i=1A ...

  9. Java面试笔试题大汇总(最全+详细答案)

    声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个 ...

最新文章

  1. mysql 常用函数循环_近30个MySQL常用函数,看到就是学到,纯干货收藏!
  2. eclipse配置springboot开发
  3. Linux系统抓包回放,Linux下24小时持续网络抓包(TCPDUMP)
  4. weedfs java_初窥weedfs分布式文件系统
  5. 智能机器人及其应用ppt课件_智能工业机器人应用再获成功!
  6. 议rman的crosscheck和obsolete
  7. Intellij IDEA2017 的控制台里不识别maven命令问题处理
  8. Wireshark 3.0.0 正式版发布,免费开源的网络数据包分析软件
  9. MS UC 2013-2-Deploy Microsoft Exchange Server 2013-1-Prerequisites
  10. Wireshark实战分析之ARP协议(一)
  11. 计算机技术未来的研究热点,计算机科学前沿热点及发展趋势
  12. 麦子学院C++学习笔记
  13. 460.LFU 缓存
  14. js插件--1.swal
  15. facebook、twitter、facebook登录、whatsapp分享、微信分享
  16. 基于词典的细粒度情感分析
  17. 付费计算机毕业论文毕业设计课程设计
  18. Nessus配置及使用说明
  19. Android中文开发教程()
  20. 左中右 三栏式 布局

热门文章

  1. 零基础小白的大数据入门手册
  2. php管理系统申请著作权,php管理系统申请著作权-我有一套PHP源码系统,想修改网站底部版权信息,可......
  3. 主键、唯一键、外键、
  4. THREE.js实现蝴蝶随机方向飞舞(飞行过程中可随机改变方向)
  5. 乐鑫esp8266学习rtos3.0笔记第6篇:esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官网之上增加dns域名解析!(附带demo)
  6. 云服务器DDOS攻击如何防御
  7. 【算法面试必刷JAVA版三】链表中的节点每k个一组翻转
  8. 小米note 3 Android8.1一键刷机,刷机教程
  9. DJI Manifold使用经验及DJI-OnboardSDK开发血泪史1
  10. 问题解决 Cannot calibrate from current position