25匹馬,5個跑道,每次只能5匹馬跑,問最少幾次得到跑的最快的3匹馬


正確答案: 7 場。


推理過程:


你可以先詢問面試官,「最快」的意思,是不是指比賽時總能贏?在真實情況下並非如此。但倘若你假設, A 在比賽中跑贏了 B , A 就無可爭議地跑得更快,這就極大地簡化了這道謎題。


面試官會告訴你,這麼想沒有問題,比賽就是爲了選出跑得最快的馬。通常,你會下意識地想,至少需要 5 場比賽。任何一匹馬都可能排名前三,所以,你必須讓所有的 25 匹馬都參加比賽。可每次只讓 5 匹馬參賽,少於 5 場比賽沒法讓所有的馬都參賽。


很好。接下來你的結論會是:只有 5 場比賽還不夠。第一輪,把 25 匹馬分爲 5 組,每組裏的馬只跑一次,只跟同組的馬匹競爭。一輪比賽結果大概會是這樣:


第一名:「奔騰」

第二名:「北舞」

第三名:「凱速」

第四名:「上將」

第五名:「跳影」


你無法斷定「奔騰」是 25 匹馬裏跑得最快的,甚至無法擔保它能排進前三名。舉個極端情況下的相反例子:其他 4 場比賽中跑得最慢的馬,也可能比「奔騰」跑得快,因爲它的速度可能在 25 匹馬裏排第 21 名。


那麼,從這場比賽裏我們是否瞭解到什麼東西呢?當然了。我們瞭解到這 5 匹馬的排名情況。我們還了解到,「上將」和「跳影」可以排除在外了。既然它們在這一輪比賽裏排不進前三,那麼在所有的 25 匹馬裏,它們同樣不可能排進前三。。這個道理,也適用於其他輪比賽裏的第 4 名和第 5 名。每一輪比賽可以排除掉兩匹馬。在第一輪的 5 場比賽中,我們可以刷掉 10 匹馬,留下 15 匹馬競爭前三名。


第二輪,即第 6 場比賽,要測試在最初 5 場比賽中表現出色者。合理的方案是讓 5 匹上一輪比賽的「第一名」對戰。就這麼做吧!讓「奔騰」和其他 4 場比賽的第一名跑一回。結果可能會是這樣:


第一名:「易歌爾」

第二名:「奔騰」

第三名:「終結者」

第四名:「紅朗姆」

第五名:「菲爾拉普」


這一次,我們又可以排除兩匹馬,「紅朗姆」和「菲爾拉普」。從這一次的比賽結果看,它們不可能是 25 匹馬裏的前三名。我們還了解到,「易歌爾」是所有馬裏跑得最快的!如果問題問的只是 25 匹馬裏跑得最快的是誰,那麼答案就是「易歌爾」。


可我們要的是前三名。我們不光可以排除掉「紅朗姆」和「菲爾拉普」,還可以排除掉第一輪比賽中所有敗給它們的馬。敗給它們的馬跑得更慢,而我們又已經知道「紅朗姆」和「菲爾拉普」進不了前三了。


接下來是「奔騰」。從這場最新的比賽結果來看,它有可能是所有馬裏跑得第二快的。但以下可能性仍然存在:第一場比賽排在「奔騰」之後的「北舞」,是所有馬裏跑得第三快的。那麼,最終排名就是「易歌爾」、「奔騰」和「北舞」。第一場比賽中排第三的「凱速」,現在出局了。

「易歌兒」第一次比賽時排在它後頭的第二名和第三名,仍在候選之列。這兩匹馬的速度完全有可能比「奔騰」快,因爲它們並沒有比試過。


總之,現在候選名單裏還有 6 匹馬。它們是:本場比賽的前三名;與本場比賽第一名在第一場比賽中獲第二、第三名的兩匹馬;在第一場比賽中僅次於本場比賽第二名的一匹馬。


我們已經知道「易歌兒」是跑得最快的馬,因此,讓它參賽沒有任何意義了,於是就只剩下 5 匹馬。自然,第三輪,我們會讓這 5 匹馬進行第 7 場,也是最後一場比賽。第 7 場比賽的前兩匹馬就是所有 25 匹馬中跑得第二快和第三快的。


總結一下:先進行 5 場資格賽;之後讓資格賽的第一名們進行冠軍爭奪賽,本場比賽的獲勝者就是所有馬裏速度最快的;再對邏輯上仍有資格的 5 匹馬進行最後一場比賽。這次比賽裏的前兩名,就是 25 匹馬裏跑第二和第三快的。


作者:宅狼
鏈接:https://www.zhihu.com/question/19856916/answer/40998875
來源:知乎
著作權歸作者所有,轉載請聯繫作者獲得授權。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章