64匹馬,8個賽道,找出跑得最快的4匹馬(面試題詳解)

首先,可以將馬分爲8組,每組各跑一次,然後淘汰掉後四名,這裏淘汰後四名是因爲只需要跑的最快的四匹馬。
在這裏插入圖片描述

然後取8次跑的第一名進行比賽,然後淘汰掉後四名所在的組的所有馬,因爲,後四名所在的組的第一名沒有跑過前四名的馬,所以可以直接淘汰。

在這裏插入圖片描述

這時候還剩下16匹馬,此時黃色部分是剩餘的馬,在這裏其實可以繼續淘汰,因爲D1是第九次的第四名,但D1又是它3所在組的第一名,那麼對應的D2,D3,D4都可以繼續淘汰掉。但是第四名也可能出現在C2中,C2是所在組的第二名,那麼C3,C4也可以淘汰了,根據這樣進行分析,可以得到B4也可以淘汰了。最後剩餘的馬如下圖:
在這裏插入圖片描述

最後剩餘的就是去掉上一步淘汰的馬。總數爲10匹,其實這時候最快的一批已經出來了,那麼就將剩餘的9匹馬,選擇一匹,剩餘的8匹,重新跑一下選擇最快的3匹。

然後將跑出來的3匹馬和剛沒有跑的1匹,默認最快的一匹,再跑一場,最後最快的4匹也就出來了。最少要使用11場比賽。

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