该题最早在10月12日360的笔试中见到。作为一道选择题出现

A、7 B、8 C、9 D、10

先给出一种启发式方法

方法一:

1)将25匹马分成5组,进行5场比赛。

2)将每组的第一名放到一起,进行第6场比赛,选出排名第1的马。

3)选择一匹有可能进入前5,但尚未参加比赛的马(有且仅有1匹,为什么?),与上一场剩余的四匹马进行第7场比赛,选出排名第2的马。此时,若新加入的小组第2名的马位列本次比赛第5。则说明其余4匹马,为整体排名2-5的马,选择结束。大多数情况并非如此幸运。

5)根据如上规则进行第8、9、10场比赛,选出第3、4、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

(数子代表组号,字母代表小组内排名)

1)进行5场比赛,得到如上分布。

2)选A1 A2 A3 A4 A5进行第六场比赛,选取排名第1的马,(假设为A1)

3)选取B1 A2 A3 A4 A5进行第七场比赛,选取排名第2的马。假如这场比赛中B1 排名最末,则说明A2  A3 A4 A5位列2-5名,选择结束。

4,5)略

由上述可见,该方法最差需要7-10次。取最差情况为10次。

该方法选出了5匹最快的马,且给出了他们之间的排名;而题目中只要求前者,因此方法一“超额”完成了任务,代价就是比赛的场数过多。并且显然该方法不稳定。那么可不可以进行优化,使其稳定在7-10的一个数字呢。下面给出一种只需8次的方法。

方法二:

1)同方法一(1),

2)选取每组的第2名进行第6场比赛。假设比赛排名从前往后依次为 B1 B2 B3 B4 B5,则A1肯定位列1-5名,同时B3-E3 B4-E4 B5-E5定不是前5名。

3)选取C1 B2 A3 A4 A5进行第7场比赛。这时就需要分类讨论了。

a)B2获得小组第1名,此时情况比较简单,B2全部排名第4(B1,A2为第2、3名),只需在C1,A2,A3,A4 ,A5之间进行第8场比赛,找出第5名即可。(八场)

b)C1获得小组第1名,此时,排名一定在C1前的有A1 B1,可能在C1前的有 A2,此时B1,C1入选前5名。此时还需针对B2,进行分类讨论:

b.1)若B2为小组第2名,则第4、5名只可能出现在D1 E1 A2 B2的位置上,该四匹马进行第8场比赛,找出4、5名。

b.2)若B2为小组第3名,不妨设排名为C1 A3 B2 A4 A5(考虑A3 A4 A5的轮换对称性,始终假设A3先于A4先于A5,下同),则此时A4 A5定无法进入前5,可能进入前5的为 D1 E1 A2 B2 A3,该五匹马进行第8场比赛,找出4、5名。

b.3)B2为小组第4名,设排名为C1 A3A4 B2 A5,则B2 A5无法进入前5,可能进入前5的为D1 E1 A2 A3 A4。

c)A3获得小组第1名,则可能在A3前的只有A1 B1 A2,所以A3进入前5名。针对第小组第2名进行分类讨论

c.1)C1获得小组第2名,则B2之前有A1 B1 A2 A3 C1,B2不可能进入前5名;B1之前只可能有A1 A2 A3,B1进入前5名。可能进入前5名的还有C1 D1 A2 A4。该4匹进行第8场,选出第4、5名。

c.2)B2获得小组第2名,则C1之前有A1 B1 A2 B2 A3,C1不可能进入前5名;B1之前只可能有A1 A2 A3,B1进入前5名。B2之前只可能有A1 A2 A3 B1,B2进入前5名,A2进入前5名。

c.3)A4获得小组第2名,

c.3.1)C1获得小组第3名,则排名在B1之前的有A1,可能排在B1之前的有A2 A3 A4,B1进入前5名,B2之前的有A1 A2 B2 C1 A3 A4,B2不可能进入前5名,则可能进入前5名的为C1 A2 A3 A4,第8场比赛从中选择第4、5名。

c.3.2)B2获得小组第3名,则前5名为A1 A2 A3 A4 B1。

c.3.3)A5获得小组第3名,则第4、5名可能为A4 A5 A2 B1。进行第8场。

该方法进行7-8场比赛。

本方法穷举了所有情况。缺少系统的概括。

笔试面试题:25匹赛马,5个跑道,每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马相关推荐

  1. 25匹马,5个跑道,每次只能同时有5匹马跑,问最少需要几次可以得到跑的最快的3匹马?

    1. 前言 共有两种情况,这里先给出结论,下面详述,记时和不记时. 记时 自然5次就可以得到答案,每次记时然后得出前三即可: 不记时 结论是至少需要 7 次,下面来一步步分析 2. 不记时情形 首先, ...

  2. [高频面试题]64匹马,8个赛道,找出跑得最快的4匹马

    [高频面试题]64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场? 图片参考自网上,解题思路为本人原创,在此声明.评论区有很多小伙伴思路独特,想法很好,大家可以参考. update:2022年7月 ...

  3. 64匹马,8个赛道,找出跑得最快的4匹马(面试题详解)

    首先,可以将马分为8组,每组各跑一次,然后淘汰掉后四名,这里淘汰后四名是因为只需要跑的最快的四匹马. 然后取8次跑的第一名进行比赛,然后淘汰掉后四名所在的组的所有马,因为,后四名所在的组的第一名没有跑 ...

  4. 64匹马,8赛道,找出跑得最快的4匹马,至少比赛9场

    遇到这种问题, 首先先不要尝试思考具体的方式, 先用算法找上下限, 接下来不断通过验证和分析去缩短已经确定的上下限(因为你的上下限计算方式可能不对). 这里先给一个简单的题: 4个矿泉水瓶可以换一瓶矿 ...

  5. 64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场?

    说一种10场就可以找到跑的最快的四匹马的解法 第一步: 通过八场比赛可以得到如图排序,红框内成员已可确定不可能进入前四,顾后续不予考虑 第二步: 将每一场比赛的第一名在进行一次比赛,假设排序结果为: ...

  6. 64匹马,8个赛道,找出跑得最快的4匹马

    64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场? 第一步 全部马分为8组,每组8匹,每组各跑一次,然后淘汰掉每组的后四名,如下图(需要比赛8场) 第二步 取每组第一名进行一次比赛,然后淘汰最后 ...

  7. 25 匹马,5 个赛道,没有计时器,请问最低多少次可以找出跑得最快的 3匹马

    第一次比赛 首先将25匹马分成5个小组,分别为A, B, C, D, E,比赛次数5次:5次 每个小组都分别进行比赛,分别得到前两名,分别为A1,A2, B1, B2, C1, C2, D1, D2, ...

  8. 25匹马,5个跑道,每次只能5匹马跑,问最少几次得到跑的最快的3匹马

    正确答案: 7 场. 推理过程: 你可以先询问面试官,「最快」的意思,是不是指比赛时总能赢?在真实情况下并非如此.但倘若你假设, A 在比赛中跑赢了 B , A 就无可争议地跑得更快,这就极大地简化了 ...

  9. 一个赛马问题 25匹马5个赛道,每个赛道每次只能跑一匹马,问需要跑几次,能求出跑得最快的三匹马。...

    肯定 7 次 25匹马先设5组:假设A,B,C,D,E五组 跑5轮后选每组前3名进下一轮 每组第一名比赛一轮(第6圈)得出第一名(假设A1)第二名(假设B1)第三名(假设C1) 从(第6圈)第一名组中 ...

  10. 【智力问题】25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。...

    答案是7次. 1. 首先将25匹马分成5组a.b.c.d.e进行比赛.比赛的次数就是5次.得到每组的第一名,分别编号a1,b1,c1,d1,e1. 2. 然后我们将每组的第一名进行比赛,得出结果.假设 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 7. 支持向量机
  2. leecode---46---数组,dfs---求出数组的所有组合
  3. 吴恩达 coursera AI 第四课总结+作业答案
  4. 从618大促看直播风口,电商玩家如何走得更远
  5. Java技术:为什么不推荐使用BeanUtils属性转换工具
  6. 优秀学生专栏——孙珩发
  7. 透析 | 卷积神经网络CNN究竟是怎样一步一步工作的?
  8. python 修改pdf内容,如何使用python更改pdf内的超链接?
  9. web开发兼容性测试工具
  10. PAT (Basic Level) Practice1020 月饼
  11. DDS核心规范-DDS v1.4、DDSI-RTPS、IDL
  12. 大数据量下高并发同步
  13. nodejs面试题笔记
  14. 中心药库管理系统 v6.85 是什么
  15. 十进制转化为十六进制的三种方法 (可适用于十进制转化为各种进制)
  16. 2013上半年智能电视市场调研报告分析
  17. 如何注册域名的详细图文过程分享
  18. The application bundle does not contain a valid identifier
  19. 刘强东都想明白了,你们却还在讨论流量焦虑
  20. 区块链之一 起源思想和本质

热门文章

  1. excel oss 上传_阿里云对象存储OSS全系统教程
  2. u盘文件看得见却打不开_u盘可以显示但是打不开怎么办
  3. 《引爆点》——读书笔记
  4. 交易日节假日查询API接口规范
  5. c++中arccos()的用法(提醒自己)
  6. 如何正确利用肢体语言表达自己
  7. LSTM(Long Short Term Memory)和RNN(Recurrent)教程收集 (知乎)
  8. C语言变量命名有哪些规则,C语言变量的命名规则都有哪些?
  9. 网络棋牌游戏成为网游主流力量
  10. 高校邦python网课答案_高校邦编程之美——python网课答案公众号