zoukankan      html  css  js  c++  java
  • 《社交网络》中写在玻璃上的数学公式是什么公式?

      影片中的公式如下:

      

      

      按照电影中的情节,扎克伯格用这个公式来给女孩相貌打分。谷歌一下,这个公式是Elo Rating System的一部分,显然在这里应用的就是Elo Rating System分级系统。

      参考wiki对Elo Rating System的解释,就很容易理解这个公式如何来用。

      

      Elo分级系统由美国物理学教授Arpad Elo提出,最初是用于计算象棋比赛中的选手的相对水平,现在已经广泛用于很多类比赛的选手分级。

      在一场比赛中,选手都有一个分数,这个分数代表了选手的实力。分越高表示选手实力也越高。而分数可以通过打败其他选手来获得。

      Elo算法的实现细节如下:

      假设选手A和B,当前拥有的分数分别为RA和RB。

      则选手A得分的期望值为:

    E_A = frac 1 {1 + 10^{(R_B - R_A)/400}}.

      类似地选手B得分的期望值为:

    E_B = frac 1 {1 + 10^{(R_A - R_B)/400}}.

      或者也可以表示为:

    E_A = frac{Q_A}{Q_A + Q_B}
    E_B = frac{Q_B}{Q_A + Q_B}

      其中:Q_A = 10^{R_A/400}Q_B = 10^{R_B/400}

      显然的,根据公式,有E_A + E_B = 1

      期望值为A的实际得分为SA,则更新后的分数为:

    R_A^prime = R_A + K(S_A - E_A).

      这里K是一个常数,对于实力较强的选手,设置K=16,以相对减小实力强的选手的增加得分(这基于一个常识,实力越强,后面提升的空间就相对越小)。  对于实力较弱的选手,则设置K=32。

      举个例子,A的初始分数和1613,B的初始分数为1609。则

      EA = 1/(1+10^((1609-1613)/400)) = 0.506。

      若A负于B,则SA=0(若A战胜B,则SA=1,平局为0.5)。

      则R'a = 1613 + 32*(0 - 0.506) = 1597

      Elo与一般的锦标赛得分制相比,优势在于它考虑到了选手本身的实力差距。比如一个较强的选手战胜了一个较弱的选手,这种胜利应该是理所当然的,因而获得的分数就会相对较少。而反之一个较弱的选手战胜了一个较强的选手,这种胜利不太常见,就会相应提高赢得的分数。这样相对而言更为公平。

      Elo分级算法的一种潜在的应用是,用在电子商务中商品之间的比较。可以通过一系列指标给所有商品一个初始的分数。然后通过用户的决策,如浏览、收藏、购买这些行为来形成比较,从而选出优胜的商品。

    Elo算法的应用

      之前有游戏玩家对11对战平台的天梯积分系统中分析,其中说天梯积分中的英雄积分就是通过Elo Rating System来给出的。11天梯分数由两部分构成,一个叫天梯积分,一个叫英雄积分。天梯积分等于你所使用的各个英雄的英雄积分的加权平均数。

      天梯积分的计算公式为:

      

      其中,Si就是利用Elo计算出的结果。

  • 相关阅读:
    MS SQL入门基础:sql 其它命令
    MS SQL入门基础:数据类型
    MS SQL入门基础:SQL数据库表的修改
    MS SQL入门基础:创建数据库表
    MS SQL入门基础:注释符、运算符与通配符
    MS SQL入门基础:删除数据库
    MS SQL入门基础:字符串函数
    MS SQL入门基础:SQL 流程控制命令
    MS SQL入门基础:关系数据库的范式
    MS SQL入门基础:创建索引
  • 原文地址:https://www.cnblogs.com/lkprof/p/3281933.html
Copyright © 2011-2022 走看看