大概等待时间

时间:2014-05-14 18:53:28

标签: java

我的朋友和我正在为移动设备制作多人游戏。

我们无法计算游戏的大致等待时间。

每场比赛需要6名球员加入。我们知道有多少人在玩(1场比赛需要2-3分钟)。我们也知道有多少玩家在线,有多少人正在寻找游戏(< 6)。

我可以根据这些信息计算时间吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试通过维护玩家签约和最近加入的频率统计数据来做到这一点,但这只是最佳近似值。没有办法保证第6个玩家会在给定的时间内或之前出现。

答案 1 :(得分:0)

在我看来,这可以用多元线性回归算法建模(搜索类似的东西:'线性回归java' 会给你一些实现。)

在我看来,该功能将作为参数:

  • 一天中的时间
  • 在线玩家的数量(这里你也可以只考虑不闲聊的玩家)

并输出其他玩家加入的平均等待时间(您可以将其与剩余玩家的数量相乘)。

对其工作原理的简短解释如下:

  • 当天的时间在线玩家的数量形成一个包含2个组件的向量。让我们称之为X
    X = [timeOfDay, onlinePlayersCount]
  • 您的平均等待时间也为Y

  • 现在想象您绘制了由XY组成的点。您获得点云

  • 您想要的是一条将通过点云的线路。如您所知,一行描述为Y = aX + b,因此您想要了解ab。这是线性回归算法发挥作用的地方,它将为您提供这些值。

  • linear regression algorithm需要您传递一组您自己从系统中提取的XY对。

    例如:在上午12:00,当200名玩家在线时,新玩家加入将花费近38秒。
    所以当你拥有这些数据时,你只能将它提供给算法,它会给出您ab

  • 现在你知道ab,你可以通过求解简单的等式来计算Y(平均等待时间):Y = aX + b

您可以通过简单的搜索了解更多信息。就我所知,这就像League of Legends之类的游戏一样。

注意:有一个专门用于机器学习的Stack Exchange网站。

祝你好运!