考虑这样一个现实的问题:

碧蓝档案的总力战中,每个人每天有3次机会打总力战,而将每个人打出的分数(最高分)进行排序,前15000名可以获得最多的奖励. 第15000名的分数被称为一档线. 那么如何建模才可以在一定程度上给出一档线随时间变化这一过程.

由于随机过程如果考虑最最完善的情况的话,就会出现一个过程套另一个过程套另一个过程这样套娃的情况,导致只能依赖数据进行数值计算,与此文章的目的相悖.


(资料图)

故本文章考虑这样一个理想的模型:

首先,要求不论什么时间(包括上班时间睡眠时间),都有稳定的玩家数量,一个人不打总力战就得有另一个人去打总力战,这样就可以认为打总力战是一个泊松过程,而且保证了泊松过程的强度恒定. 其次假定各位玩家的实力相当,且都打ins难度,这就意味着不同的人打完时,产生的分数独立且同分布. 第三是每人只打一次,这个假定意味着玩家不能覆盖自己的历史最高分.

现在开始分析: 

首先,没有足够的证据证明成绩近似服从正态分布,所以在分析中我们考虑最一般的情况,设各位参与者的成绩服从分布的概率密度是  ,而分布函数是 . 然后设分数线为第  个人的成绩. 

由模型的假设,得到的分数的个数服从泊松分布  

当  时,有以下条件概率密度

这个就是引用了n-m+1次序统计量的概率密度函数

此时算出条件分布函数为

而当  时,由于没有足够的样本,故可以认为m次序统计量为任意比可能的最低分还要小的数,因此

而根据全概率公式

得到第  大的分数的分布函数,并且求导还可以得到概率密度

这便是分数线服从的分布函数,其中参数  代表最多只能有多少人过线,参数  是泊松分布的强度,参数  是经过的时间. 虽然成绩个数有几率不足m个,使得P并非从0开始,但是随着时间增长,分数个数不足m的概率快速趋于0,对于较大的  几乎无影响.

此公式用于预测的示例:

一个比赛,每个人只能参加一次,并得到一个分数,每位选手得分服从期望和标准差都为10的正态分布,参加人数服从强度为10的泊松分布,只有前10名可以获得奖品,预测时间为10时的分数线.

对其的预测可以用上述概率密度函数代入数值求期望来得到,通过mathematica进行数值积分得到期望约为23.02

而对其的检验试验则可以通过生成伪随机数来进行,方法如下:

(顺带一提,此种情况产生成绩个数不足m的概率,数量级仅为10^(-32))

调用mathematica生成一个服从Poi(100)的随机数n

调用mathematica生成n个服从的随机数 

对  进行排序

输出第10大的数

重复1-4步若干次,把输出的数取平均值

这里进行了12次试验,得到的数据如上,试验样本平均值为22.41,相较于预测值23.02,相对误差2.6%

预测分数线关于参数的性质

上面已经介绍了对于各项参数都已经确定时,预测分数线的方法,但是我们有时也很关心分数线随时间的变化情况.

用上述概率密度计算期望,并表示为  的函数

接下来我们来计算其一个特殊的渐近展开,即当成绩服从正态分布时的渐近展开

简单的变形得到

我们知道u趋于0时y趋于无穷,函数g的值主要由0附近的积分贡献,所以考虑y在u=0附近的展开,由简单的分部积分可以得到 

其中W是Lambert W 函数,因此 

代入积分得到 

这个积分的渐近展开我在此直接给出(或许未来的某天我会把证明发出来)

这便是在成绩服从正态分布这一情况下,预测分数线的函数在时间很大时的渐近展开.

推荐内容