有在接受採訪時提出了一個問題:如何實現種族模擬問題的解決方案
在公式-1的挑戰,有n個團隊編號爲1到n。每個隊都有一輛車和一名司機。汽車的規格如下:
- 最高時速:(150 + 10 * I)公里每小時
- 加速:(2 * I)每秒平方米。
- 處理因子(hf)= 0.8
- Nitro:將速度提高到雙倍或最高速度,以較小者爲準。只能使用一次。
這裏是我的團隊編號。 賽車參加比賽。第(i + 1)輛汽車的起點在第i輛汽車後面200 * i米。
所有這些都開始在同一時間,並試圖達到其最高速度。每2秒進行一次位置重新評估(所以即使車輛已經越過終點線,2秒鐘後你就會知道了)。在評估過程中,每位駕駛員檢查他的汽車10米內是否有汽車,他的速度降低到:hf *(當時的速度)。另外,如果司機注意到他是比賽中的最後一名,他使用「硝基」。
以團隊數量和軌道長度作爲輸入,計算最終速度和相應的完成時間。
我不明白如何解決這類問題。對於每個實例,我應該檢查每對驅動程序的所有C(n,2)組合並計算結果?但是我怎樣才能弄清楚我應該在什麼情況下進行計算?
我不確定,但是如果我有你的問題,我認爲你必須在「客戶端 - 服務器」模型中實現。你有一個服務器負責持有match.clients是汽車(團隊)。在每一步客戶都會告訴服務器他們的信息,服務器存儲它,並且他們可以訪問所有其他汽車信息。因此,他們在每一步都會收到完整的汽車列表和他們的信息,以便他們可以瞭解是否有汽車在O(n)的時間10米內。就像真正的F1賽車一樣,顯示所有車手的排名和他們在屏幕上的位置! –