前些天看別人的面試題,看到這個題目。一開始沒仔細想,後來看了一篇部落格,發現之前的想法太簡單,並不是最少的
問:25匹馬,5個賽道,沒有表和計數器之類的東西,至少跑幾次可以找出最快的三匹馬?
25匹馬分五組,每組按成績排序,如下:
[ q, w, e, r, t ]
[ y, u, i, o, p ]
[ a, s, d, f, g ]
[ h, j, k, l, z ]
[ x, c, v, b, n ]
第六次:取每組第一名:[ q, y, a, h, x ],比賽一次, 假設按成績排序是 [ a, q, x, h, y ],則第一名是a
因為只需要取前三名,第六次比賽時第四名和第五名不在篩選範圍內,又因為這兩匹馬都是小組第一,所以,這兩個小組都不在篩選範圍內。
[ q, w, e, r, t ]
[ s, d, f, g ]
[ x, c, v, b, n ]
此時,除去 a 之後,目前的篩選範圍中,第一組的前兩名 [q, w] 和第二組的前兩名 [s, d] 都有可能是前三,而 x 最好的結果是第三名
第七次:選擇 [q, w, s, d, x] 進行比賽,得到的前兩名分別就第二名和第三名
25匹馬分五組,每組按成績排序,如下:
[ q, w, e, r, t ]
[ y, u, i, o, p ]
[ a, s, d, f, g ]
[ h, j, k, l, z ]
[ x, c, v, b, n ]
第六次:取每組第一名:[ q, y, a, h, x ],比賽一次, 假設按成績排序是 [ a, q, y, h, x ],則第一名是a
此時,篩選範圍如下:
[q, w, e, r, t]
[y, u, i, o, p]
[s, d, f, g]
[h, j, k, l, z]
[x, c, v, b, n]
第七次:繼續取每組第一名:[q, y, s, h, x],假如 q第一,x最後。得前兩名 [a, q],並確定最後一名 x 不在前五名範圍,該組也就不在篩選範圍之內
此時,篩選範圍如下:
[w, e, r, t]
[y, u, i, o, p]
[s, d, f, g]
[h, j, k, l, z]
第八次:將第七次比較時的第一名所在組的前兩名加入比較範圍,再將其他組的第一名加入比較範圍,得 [y,h,s,w,e], 假如此時比賽成績排序:y>h>s>w>e, y第一,w, e最後兩名,得前三名 [a, q, y]。因為最後兩名不在前五範圍,所在小組就不在後續篩選範圍
此時,篩選範圍如下:
[ u, i, o, p ]
[ s, d, f, g ]
[ h, j, k, l, z ]
第九次:
根據第八次的情況,此時的篩選範圍可能是兩組也可能是三組
如果是兩組的情況:任意取其中一組的前三,和另一組的前二
如果是三組的情況:取第八次比較時第一名所在組的前二,第八次比較時第二名所在組的前二,和第八次比較時第三名。 取出[h, s, u, i, j]進行一輪比賽
=> 假如排序: u>h>s>j>i, u第一 得前五名 [a, q, y, u, h]
25匹馬 5條賽道 選出最快的幾匹
此問題分兩類,一種是選出最快的5匹 一種是選出最快的3匹。注意,這裡只要求列出最快的5匹馬,不需要給出它們五個的排序 冠亞季殿x 所需要比賽的場次根據分組的 均勻程度 而不同 最少需要比賽7場,最多需要8場。網上有人說的要賽9場,他們預設是要給出5匹的排名 冠亞季殿x 方法如下 得到下面的編號 a1...
25匹馬,5條賽道,找出最快的5匹馬
前段時間面試的時候來了兩道邏輯題,一道粗細不均勻的繩子燒出15分鐘,比較簡單,思考了下就過了。但是這道關於馬的,想了很久感覺都沒有乙個好的解法。回來之後看了下,這道題據說是google的題,原題是選出最快的三匹馬。看了一下,大受啟發。三匹馬需要七次。我先貼一下我的結論,我這邊算出來的結果五匹馬應該是...
25匹馬的角逐
內容具體見下 問題是這樣的 一共有25匹馬,有乙個賽場,賽場有5個賽道,就是說最多同時可以有5匹馬一起比賽。假設每匹馬都跑的很穩定,不用任何其他工具,只通過馬與馬之間的比賽,試問最少 得比多少場才能知道跑得最快的5匹馬。注意 假設每匹馬都跑的很穩定 的意思是在上一場比賽中a馬比b馬快,則下一場比賽中...