日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

64马8赛道取前4问题

發布時間:2024/1/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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. 判斷

  • 如果第10趟中位于第三名的馬匹,Y位編號>=3,則可說明前三名,外加之前取到的11號,這4匹馬就64匹馬中跑的最快的4匹【此時結束:總趟數10趟】
  • 如果本趟中位于第三名的馬匹,Y位編號<3,則需淘汰第10趟中排名第8的馬匹,將41號編入再跑1趟,即可確定64匹馬中跑的最快的4匹【此時結束:總趟數11趟】
  • 1.2.3 皮一下的方法–1趟

    Step1. 將8條賽道均勻分成8等份,即獲取64條子賽道。
    Step2. 將64匹馬分別分配在各個子賽道,同時起跑,取最先到達子賽道終點的4匹馬即為64匹馬中跑的最快的馬【此時結束:總趟數1趟】

    2. 總結

    該問題要求盡可能充分的利用已知信息,在該題目中我們可以獲知的信息分別是:

  • 第一輪8趟中,我們可以知道馬匹的 組內排名
  • 第二輪1趟中,我們可以知道馬匹的 組間排名
  • 我們可以獲知的控制條件分別是:

  • 馬匹 組內排名,如果組內無法跑進前4,則必無法進入整體的前四。
  • 馬匹 組內排名,如果本組排名相對靠后的馬位于前4,則本組排名在它之前的馬必在前4
  • 馬匹 組間排名,如果本組最快的馬無法跑進前4,則該組剩余的馬必如法進入整體的前4。
  • 充分利用這些信息我們即可在用最少的輪次篩選出最快的馬匹

    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问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。