常態分布與游戲匹配

游戲匹配的勝率與兩個選手之間的段位差成正態分布關系,并非高段位玩家能100%贏低段位玩家,在MMORPG(Multiplayer Online Role-PlayingGame),大型多人在線角色扮演游戲,像LOL(英雄聯盟),農藥(王者榮耀),亂斗西游, 夢三等 游戲中(守望先鋒不是,它是FPS類)均適用。

一般段位分也叫Rank值,如下為等級量表----段位分區間尺度:


LOL段位換算分.PNG

我們可以使用一個正態分布函數來代表一名選手的波動表現,這是統計學上的概念。從這個函數里可以得出另一個函數叫“常態概率函數” ,這個就定義了根據比賽對抗結果可得出的等級差別,或者根據已知的等級差別可得出的預期比賽對抗結果。它是這樣的:


用正態分布計算優勝概率.PNG

一般標準的正態分布函數是:


正態分布函數.png
#include <stdio.h>
#include <math.h>
double normalDistribution(double u)//正態分布隨機數
{
      double num1,num2,num3,result;
      double s1,s2;

      s1=(1.0+rand())/(RAND_MAX+1.0);//隨機數1
      s2=(1.0+rand())/(RAND_MAX+1.0);//隨機數2

      num1=sqrt(-2*log(s2)/log(e));
      num2=2*pi*s1;

      num3=num1*cos(num2);
      x=u+num3*N;//u是均值,N是方差
      return x;
}
#include <stdio.h>
#include "mytest.h"
void main()
{

double result = normalDistribution(2.0);

printf("result\n", );

}

正態分布有兩個參數,即期望(均數)μ和標準差σ,σ2為方差。
期望(均數)μ=0,標準差為σ的正態分布函數圖如下:


標準正態分布圖.jpg

P(D)這個值,就是以段位分差別D為自變量計算出來的預期取勝可能性(預期得分率),它可近似用下面這個公式來計算:


計算結果.png

比如選手A的段位分為2500分,B的段位分為1800分,那么D=700分;那么A是不是會虐到B連渣都不剩呢?答案是不一定的。代入上面那么近似計算公式,A的勝率就是:


計算結果.PNG

結果勝率為:98.25%,并非傳說中的100%獲勝;但是勝率已經算比較高了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容