我和我的朋友正在为移动设备制作一个多人游戏。
我们很难计算出比赛的大致等待时间。
每一场比赛都需要6名玩家加入。我们知道有多少人在玩(一场比赛需要2-3分钟)。我们还知道有多少玩家在线,有多少人已经在寻找游戏(< 6)。
我能根据这些信息计算时间吗?
发布于 2014-05-14 19:25:04
在我看来,这可以用一个多元线性回归算法来建模(搜索类似于:‘线性回归java’会给你一些实现)。
在我看来,这一职能将作为论据:
并输出另一个玩家加入的平均等待时间(您可以将其乘以剩馀加入的玩家数)。
下面简单地解释一下这是如何工作的:
X
。
X = [timeOfDay, onlinePlayersCount]
Y
,它是您的平均等待时间。X
和Y
形成的点。你得到了一团分数。Y = aX + b
,所以您想知道a
和b
。这就是线性回归算法发挥作用的地方,并将给出这些值。linear regression algorithm
将需要您传递一组您自己从系统中提取的X
和Y
对。例:在凌晨12:00,当200名玩家在线时,一个新玩家需要38秒钟才能加入。
因此,当您拥有这些数据时,您只需将其交给算法,它就会给您提供a
和b
。
a
和b
,您可以通过求解简单的方程:Y = aX + b
来计算Y
(平均等待时间)。您可以通过简单的搜索来阅读更多关于这些信息的信息。据我所知,这也是像League of Legends
这样的游戏。
注意:有一个专门的堆栈交换网站,仅供机器学习。
祝好运!
发布于 2014-05-14 19:00:59
你可以尝试这样做,保持统计数字的球员已经签署和要求加入最近,但这将是最好的近似值。没有办法保证第6名球员会在给定的时间内出现,或者永远不会出现。
https://stackoverflow.com/questions/23662835
复制相似问题