64马8赛道取前4问题
64馬8賽道問題
- 0. 問題描述
- 1. 解題思路
- 1.1 有計時的情況--8趟
- 1.2 無計時的情況
- 1.2.1 一般方法--15趟
- 1.2.2 優化方法--10至11趟
- 1.2.3 皮一下的方法--1趟
- 2. 總結
- 3. 更新
0. 問題描述
64馬8賽道問題常常以以下形式被描述:
現有64匹馬以及8條賽道,現在需要選出跑的最快的4匹馬。
- 在有計時的情況下,需要跑幾輪?
- 在無計時的情況下,需要跑幾輪?
1. 解題思路
1.1 有計時的情況–8趟
有計時的情況十分簡單。64匹馬分8組測試,對每匹馬分別計時。最后統計用時,按用時從少到多排列,取前4名即可。
1.2 無計時的情況
1.2.1 一般方法–15趟
Step1. 將64匹馬分成8組,跑8趟,淘汰每組后4名。
Step2. 將剩余的32匹馬分4組,跑4趟,淘汰每組后4名。
Step3. 將剩余的16匹馬分2組,跑2趟,淘汰每組后4名。
Step4. 將最后8匹馬編成1組,跑1趟,取前4名即可。
總結: 該方法共需跑15趟。思路比較簡單,比較麻煩,還有優化的空間。
1.2.2 優化方法–10至11趟
Step1. 將64匹馬分成8組,跑8趟,淘汰每組后4名 【此時已跑:8趟】
編號規則:XY,X=組號,Y=組內名次
Step2. 將每組第一名的馬編成1組,跑1趟,淘汰最后4名所在的組【此時已跑:9趟】
編號規則:XY,X=組間名次,Y=組內名次
Step3. 此時可以確定11號是跑的最快的馬,取出放置一旁。
編號規則:XY,X=組間名次,Y=組內名次
從圖中可以看出,組1中越靠近11越快,4組間越靠近組1越快
Step4. 取位于藍色陰影部分的馬匹,除去41號外的另外8匹編成1組,跑1趟【此時已跑:10趟】
Step5. 判斷
1.2.3 皮一下的方法–1趟
Step1. 將8條賽道均勻分成8等份,即獲取64條子賽道。
Step2. 將64匹馬分別分配在各個子賽道,同時起跑,取最先到達子賽道終點的4匹馬即為64匹馬中跑的最快的馬【此時結束:總趟數1趟】
2. 總結
該問題要求盡可能充分的利用已知信息,在該題目中我們可以獲知的信息分別是:
我們可以獲知的控制條件分別是:
充分利用這些信息我們即可在用最少的輪次篩選出最快的馬匹
3. 更新
2020年2月18日 —— 針對 qq_41543660 評論區回復的更新
最少9次,https://blog.csdn.net/qq_41543660/article/details/104363646
該算法的基本思想為 挑選標桿馬 與 待定數組,標桿馬參與下一輪比賽,名次高于標桿的馬記入 待定數組。
當標桿馬落后時重新選舉標桿馬;并將名次在新標桿馬之前的馬匹記入待定數組。
比如挑選第一組第4名[馬(1,4)]為標桿馬,第一組前三名記入待定數組
更換標桿馬的情況:下一組時馬(1,4)落出前四,將馬(2,4)選舉為新標桿參與下一組比賽,以此類推
不更換標桿馬的情況:下一組時馬(1,4)仍在前4,則馬(1,4)繼續參加下一輪,以此類推
首先感謝您的回復,先說結論
你是對的,在最好的情況下9輪即可完成比賽
最好的情況(以第4名為標桿):
64匹馬中隨機抽取8匹,且 真TOP4 在這8匹中。這樣該組的 第4名 即為 真第四名,比剩余所有的馬跑的都快。
剩下的8輪中,它必跑第一,也就印證了第一組的前四是 真TOP4。這是一個非常巧妙的方法。
但是,我們可以進行一點簡單的組合運算。這4匹馬被分在一組中的排列組合有多少種呢,應當是
C 60 4 = 487635 C^4_{60}=487635 C604?=487635即最好情況出現的概率約為 2.05 × 1 0 ? 4 2.05\times10^{-4} 2.05×10?4
到此我們先按下不談,再來看看最壞的情況:
最壞的情況莫過于每次都要重新選舉標桿。這樣 9輪 后在待定數組中會存留 TOP27。TOP27 再次按照此規則進行比賽,13輪后,待定數組內會存留 TOP12,TOP12 比賽 2輪 后選出 真TOP4,總過程 15輪。
基于正態分布,該算法最后大約穩定在 12輪 后選出真 TOP4,比文中算法多1輪
當然在你的算法中也提出了 標桿前移 的優化算法,但在這種情況下 無法得出 9輪的最優解,大約會穩定在10至12輪。與上文算法基本一致。
就我個人而言,我認為應用于生產環境的算法應當以穩定為大,即最優與最差的差距不應太大。因此我會選擇我在文中闡述的方法應用于生產。
再次感謝您提出的寶貴意見,最后祝您身體健康,謝謝。
總結
以上是生活随笔為你收集整理的64马8赛道取前4问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tipask 问答系统 如何设置第三方一
- 下一篇: 童甫带领下的海航科技集团的无人运输船正式