面試題(演算法題) 找出最快的4匹馬

2021-10-01 13:08:18 字數 1169 閱讀 9548

現有 64 匹馬,8 個賽道,在不計時的情況下,怎麼(或者說需要比多少場次)才能找出最快的4匹馬?

(先說一下為什麼強調不計時。如果計時的話,64匹馬,8個賽道,比 8 次,記下每匹馬的時間,就可以找出最快的 4 匹馬了。)

第一輪:

場次:8 場,將 64 匹馬分成 8 組,比 8 場次。

目的:知道每組組內排名,留下每組前四名,淘汰每組後四名一共 32 匹馬

結果:64匹 - 32匹 = 32匹。

第二輪:

場次:1 場,將上一輪比完之後的每組第一名,一共 8 匹馬進行比賽。

目的:在剩下的 32 匹馬中淘汰。

結果:為了方便說明,這一場比完之後按照排名取組名。比如在這一場比賽中排名第一的那一組為第一組,排名第二的那一組為第二組,排名第三為第三組,排名第四為第四組。

淘汰掉 16 匹:淘汰掉這一場比賽中排名後四位的整組成員,因此還剩下 16 匹馬;

不用比 1 匹:第一組的第一名就是全場第一名,已經穩了,可以不用比賽,所以還剩 15 匹馬。

淘汰掉 6 匹:第二組的第四名可以直接淘汰掉。因為第一名確定之後,第二名,第三名,第四名有可能是第二組的第一名,第二名,第三名。所以第二組排名第四跟全場第四無緣了。同理,直接淘汰掉第三組的後兩名。第四組的後三名。還剩下第一組的後三名共 3 匹馬;第二組的第

一、第二、第三名共 3 匹馬;第三組的第一名、第二共 2 匹馬;第四組的第一名 1 匹馬,一共 3+3+2+1 = 9 匹馬了。

第三輪:

場次:1場,最後剩下 9 匹馬,只有 8 個賽道,這一場也不得不比了。

目的:留下 1 匹,從 8 匹中找出最快的 3 匹。

第四輪:

場次:1場,找出上一輪中的前三名,加上最後 1 匹馬進行比較。

目的:從 4 匹馬中找出最快的 3 匹。但是這一輪或者這一場次很有可能不需要比。只有留下的那一匹在歷史戰績中比當前的前 3 快,才需要比這一場,否則就不需要。比如留下的是第三組的第二名,但是連第三組的第一名都未經前三,被淘汰掉了。那麼這一場就沒必要比了。

所以最終的結果是比賽場次最少 8+1+1 = 10 場次,最多 8+1+1+1=11 場次。

64匹馬,8個賽道,找出跑得最快的4匹馬

全部馬分為8組,每組8匹,每組各跑一次,然後淘汰掉每組的後四名,如下圖 需要比賽8場 取每組第一名進行一次比賽,然後淘汰最後四名所在組的所有馬,如下圖 需要比賽1場 這個時候總冠軍已經誕生,它就是a1,藍色區域 它不需要比賽了 而其他可能跑得最快的三匹馬隻可能是下圖中的黃色區域了 a2,a3,a4,...

64匹馬,8個賽道,找出跑得最快的4匹馬

64匹馬,8個賽道,找出跑得最快的4匹馬,至少比賽幾場?第一步全部馬分為8組,每組8匹,每組各跑一次,然後淘汰掉每組的後四名,如下圖 需要比賽8場 第二步取每組第一名進行一次比賽,然後淘汰最後四名所在組的所有馬,如下圖 需要比賽1場 這個時候總冠軍已經誕生,它就是a1,藍色區域 它不需要比賽了 而其...

面試題 賽馬最快N匹

最近筆試遇見這個題,在網上看了一些回答大概理解了,現總結一下。理解有限,如有錯誤,還望大神指正!我的答案 最快7次,最慢10次 1.分5組比賽5次,得到排序 a1,a2,a3,a4,a5 b1,b5 c1,c5 d1,d5 e1,e5 2.第6次,取5組中,每組第1,比賽 a1,b1,c1,d1,e...