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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM