筆試題 賽馬問題

2021-10-10 06:07:52 字數 2244 閱讀 8001

25匹馬,5個跑道,每個跑道最多能有1匹馬進行比賽,最少比多少次可以比出前5名?

因為有25匹馬,而跑道只有5個,最開始通過6場選出第一名的馬匹應該是毫無爭議的

小組賽:12

345a1

a2a3

a4a5 1

2345

b1b2

b3b4b5

1234

5c1c2c3

c4c5 1

2345

d1d2

d3d4d5

1234

5e1e2e3

e4e5

決賽:123

45a1b1

c1d1

e1為了方便討論,在這裡假設每組馬的編號與他們在組內的名次相同,同時第六場決賽也把5匹馬的名次與他們組的字母順序相對應,即假設a1為冠軍

有了冠軍,接下來的目標是尋找前5名中的剩下4名,除了第六場中的b1、c1、d1、e1各小組頭名的四匹馬以外,潛在的競爭對手為a組裡剩下的馬匹,因為它們只輸給過a1

亞軍爭奪賽α:12

345a2

b1c1

d1e1

亞軍爭奪賽五匹馬的名次結果會影響到接下來還有幾場比賽,這裡我們先假設亞軍為a2,等這一輪的討論結束了,我們再回來看看其他的名次結果會如何影響比賽的程序

假設a2贏得了亞軍爭奪賽,前5名只剩下3位等待爭奪,而e1在亞軍爭奪賽中排位倒數第一,這代表了前5名是不可能有e1與其在的e組成員一席之地了。因為比e1馬快的已經有b1、c1、d1三匹馬,而我們只需要3匹馬來得到第3-5名,同時,e組裡沒有任何一匹馬比e1要快,因此提前宣布e組馬匹全體回家

再來看看還有哪些馬匹可以參加接下來的比賽,因為a2拿下了亞軍,我們需要把a3、a4、a5這三匹a組的馬也要拉進來與b1、c1、d1三匹馬進行競爭,因為跑道只有5條我們先把倒數第一名的d1馬移出,再視情況是否需要加賽

3-5名爭奪賽:12

345a3

a4a5

b1c1

我們假設a3、a4、a5戰勝了b1、c1,位列頭三名,如果是表中的這個情況,前5名將立刻決出,只需要5+1+1+1=8場比賽即可得出前5名為a1、a2、a3、a4、a5

當然了,因為我們在前面的比賽假設了名次,而且這個情況其實正好是用最少的比賽次數得出前5名的情況,具體原因我們可以回到亞軍爭奪賽的假設再看看

亞軍爭奪賽β:12

345b1

c1d1

a2e1

我們再次對亞軍爭奪賽的名次進行假設,這次a2不再是頭名,假設b1為亞軍,同上我們還是需要提前宣布e1與e組馬匹全體回家

當b1拿下亞軍時,我們需要再一次考慮3-5名爭奪賽的成員,首先是季軍,季軍的有力爭奪者有b1以外的b組成員b2、b3、b4、b5,還有c1,而第4-5名要通過季軍爭奪賽的結果才可以得知我們需要留下哪些馬匹

季軍爭奪賽:12

345c1

b2b3

b4b5

假設c1贏得了季軍爭奪賽,b組其餘成員的名次如上,第4-5名的競爭馬匹有b組剩餘的馬匹,c組剩餘的馬匹,d組剩餘的馬匹與a組除a1剩下的馬匹,因為c1比上述這些馬匹都快,而這些馬匹唯一肯定的名次是d1 > a2,因此我們至少還需要兩場比賽決出前5名,而第9場的殿軍爭奪賽我們需要給d1選擇潛在的競爭對手

殿軍爭奪賽12

345d1

b2c2

b3c3

假設d1贏得了殿軍爭奪賽,只剩下第5名是沒有決出的了,因此只保留此前比賽的記錄中沒有馬匹比它快的馬匹,比如b2、d2、a2,這三匹馬的快慢關係是未知的

第5名爭奪賽12

345a2

b2d2

null

null

假設a2勝出,其實這裡假設哪匹馬勝出都是一樣的,至於為什麼只選三匹馬,因為其餘的馬是肯定比這三匹中的一匹或多匹要慢的,選它們過來也只是陪跑而已,比如c組與b組剩下的馬匹已經輸給過b2了,沒有必要再處刑他們,前面把比賽的馬匹數補滿是因為我們不僅需要決出首名,還需要參考結果的名次安排剩下的比賽

這時候共需要5+1+1+1+1+1=10場比賽即可決出前5名為a1、b1、c1、d1、a2

為什麼第二輪假設需要10場比賽才得出最終名次?因為上一輪假設我們將a3、a4、a5定為了第8場比賽的前3名,這個名次的結果代表了b組,c組和跑得比c1還慢的d組全部慢於a3、a4、a5,因此不需要再安排更多的比賽,即可得出3-5名為a3、a4、a5

結論:該賽馬問題最快需要8場比賽可以得出前5名,最慢需要10場比賽,減少比賽場次的情況為小組內部的剩餘馬匹直接佔據某場比賽的頭幾名

筆試題 5 賽馬排名問題

題 有25匹馬,每匹馬都以恆定的速度賽跑,當然馬與馬之間的速度是不相等的,總共有5個賽道,就是說每輪最多只能有5個馬同時賽跑。問題是 要確定出跑的最快的前三名馬,需要最少多少輪比賽?思路 毫無懸念,一匹馬只有跑了才能看出其速度,25匹馬至少都跑了一次,最少五輪,且每輪能排出名次 由於最終只要最快的三...

賽馬問題(2014美團筆試題)

問題描述 25匹馬賽跑,每次只能跑5匹馬,最快賽幾次能找出跑得最快的3匹馬?賽跑不能計時,並假設每匹馬的速度是恆定不變的。請給出答案並描述比賽過程。解答 1.將25匹馬分成5組,每組5匹馬,編號a b c d e 2.每組進行比賽,找出每組的前三名 3.將每組的第一名組成一組,進行比賽,假設名次為a...

面試題 賽馬問題

據說,這是google的面試題。面試題目如下 一共有25匹馬,有乙個賽場,賽場有5個賽道,就是說最多同時可以有5匹馬一起比賽。假設每匹馬都跑的很穩定,不用任何其他工具,只通過馬與馬之間的比賽,試問,最少得比多少場才能知道跑得最快的5匹馬?不能使用撞大運的演算法 很明顯這是乙個演算法題,網上有很多貼子...