CodeForces中rating的计算⽅法
总述
初始rating默认1500,每场⽐赛后的rating只与赛前各参赛选⼿的rating和赛后排名有关。
打得越好,rating越⾼。计算rating的⽅式是Elo积分。
步骤
rating⾼代表实⼒⾼,应该⽐rating低的获胜(即排名靠前)概率⼤。
上⾯公式中,代表选⼿与选⼿相⽐获胜的概率,号选⼿的rating为。
由上⾯的公式,我们可以在赛前计算出每位选⼿的预期排名(不是简简单单的把rating排⼀遍,因为rating的排名⽆法反映rating的差
距),即。
⽐如Round#318(Div.1)赛前Petr的rating为3029,,赛后Petr的排名为9,⼗分接近。
选⼿rating就是以赛前预期排名和赛后真实排名为依据进⾏更新的。
在赛后得到真实排名后,令,可以理解为预期与真实排名相协调后的结果。我们⼆分出⼀个新的rating为
,使得。符合选⼿的赛时⽔平。令,这就是的改变量。
但为了防⽌分数膨胀,我们引⼊。这样最终raing的变化是:
这样计算出的结果满⾜下⾯两个性质:
若赛前,⽐赛结果A依然⽐B差,那么更新后。
若赛前,⽐赛结果A⽐B要好,那么rating的改变量A>=B。
后记
前⾯的式⼦是由正态分布公式积分后再⽤最⼩⼆乘法得到的,推导⽅法可见知乎上的⼀篇回答。
⽂章步骤部分翻译⾃,如有错误欢迎指出。
P=i,j,r>
1+10400
r−r
j
i
1
irj
Pi,jijiri
ed
ed=i1+Pj=1,j=i
∑n
j,i
ed≈Petr10.7
aim=i
ed⋅aiimi
r=iRed=i
′
miRid=i2
R−r
iri
inc=min(max(−,−10),0)n
d∑1
n
i
r=ir+id+iinc
r
r
Pi,j
本文发布于:2022-11-15 11:42:17,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/24055.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |