• 64匹马8个跑道最少需要多少轮才能选出最快的4匹马?


    这是在网上见到的一道腾讯面试题

    先说结论:
      1. 计时的情况下需要比赛8轮;
      2.不计时的情况下最少需要10轮,最多需要11轮。

    1 用秒表计时的话,64匹分8组。 8轮就出来了

    2:不能计时的情况下

    先说下思路:

    一:把64匹马分8组,各跑一次,然后淘汰掉每组的后四名,这里淘汰后四名是因为只需要跑的最快的四匹马。(花费8轮);

    二:取每组第一名进行一次比赛,然后淘汰最后四名所在组的所有马,因为后四名所在的组的第一名没有跑过前四名的马,所以可以直接淘汰。(+1轮);

    还剩16匹,第一名已经出来了

    这时候还剩下16匹马,在这里其实可以继续淘汰,因为D1是第九轮的第四名,但D1又是它3所在组的第一名,那么对应的D2,D3,D4都可以继续淘汰掉。

    但是第四名也可能出现在C2中,C2是所在组的第二名,那么C3,C4也可以淘汰了,同理,可以得到B4也可以淘汰了。到此为止还剩10匹马,其中A1是64匹马中跑的最快的马,可以直接晋级。如下图,其中有红色斜线是已经被pass的:

    第三:

    A2、A3、A4、B2、B3、C1、C2、D1八匹马跑一次,即:在剩下需要排名的马中,除了B1外,其它8匹马跑一次(+1轮

    分类讨论:

    1、如果这次排名,B2或C1能进前三名,则加上B1后,B1一定能进前三名,因为B1 排名比B2和C1都要靠前;

         到此比赛可以结束了;这种情况8+1+1=10次出结果;

    2、如果这次排名,B2或C1不能进入前三名,则需要再进行一次比赛,B1、A2、A3、A4进行,取前三名:

         这种情况8+1+1+1=11次出结果。

    结论:

          1. 计时的情况下需要比赛8轮;

       2.不计时的情况下最少需要10轮,最多需要11轮。

    参考:

    https://blog.csdn.net/qq_44756792/article/details/103851500

  • 相关阅读:
    火币交易细则
    期货基础知识(竞价,定价,保证金计算)
    期货开平,多开,空开,多平,空平
    最优风险资产组合
    为什么不要把鸡蛋放在同一个篮子里?
    Linux shell 自定义函数
    Linux shell for while 循环
    shell 脚本编写 if else then
    linux任务前后台执行
    Mac 破解Navicat Premium Mac12
  • 原文地址:https://www.cnblogs.com/xiaokang01/p/12484983.html
Copyright © 2020-2023  润新知