[英]Approximate waiting time
我和我的朋友正在為移動設備制作多人游戲。
我們無法計算游戲的大致等待時間。
每個游戲需要6位玩家加入。 我們知道有多少人在玩(一場比賽需要2-3分鍾)。 我們也知道有多少在線玩家,已經有多少人在尋找游戲(<6)。
我可以根據這些信息計算時間嗎?
您可以嘗試通過維護有關玩家最近登錄並請求加入的頻率的統計信息來做到這一點,但這僅是最好的近似值。 無法保證第六名玩家會在給定的時間內出現,甚至永遠不會出現。
在我看來,可以使用多重線性回歸算法來建模(搜索類似“線性回歸java”的方法將為您提供一些實現)。
我認為該函數將作為參數:
並輸出其他玩家加入的平均等待時間(您可以將其乘以剩下的玩家數量)。
簡短的解釋如下:
X
X = [timeOfDay, onlinePlayersCount]
您還有一個Y
值,它是平均等待時間。
現在想象一下,您繪制了由X
和Y
形成的點。 你會得到點雲 。
您想要的是一條穿過點雲的線。 如您所知,一條線被描述為Y = aX + b
因此您想知道a
和b
。 這是線性回歸算法發揮作用的地方,它將為您提供這些值。
linear regression algorithm
將需要您將您自己從系統中提取的一組X
和Y
對傳遞給它。
例如:在12:00 AM,當200位玩家在線時,新玩家加入將花費近38秒的時間。
因此,當您擁有此數據時,您僅將其提供給算法,它將獲得a
和b
。
現在您知道a
和b
,您可以通過求解以下簡單方程式來計算Y
(平均等待時間): Y = aX + b
。
您可以通過簡單的搜索來閱讀更多內容。 據我所知,這就是《 League of Legends
》這樣的游戲。
注意:有一個專門用於機器學習的Stack Exchange網站。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.