Atcoder Rating System
来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,只是为了方便自己查阅用的。
对于你的每一场rated比赛,会有一个Performance值\(X_i\),你的rating是\(X_i-f(i)\)的加权平均,其中\(f(1)=1200\)而\(f(i)\)单调递减。也就是说,如果你的Performance值稳定在\(X\)上,你的Rating会从\(X-1200\)逐渐上升为\(X\)。
那如何计算Performance呢?对于每个选手,有一个值叫做\(APerf\)(Average Performance),设\(Perf_1,Perf_2,\ldots,Perf_k\)是你的每一场Perf(时间从后往前),那么
\[
APerf=\frac{\sum_{i=1}^kPerf_i\times 0.9^i}{\sum_{i=1}^k0.9^i}
\]
那对于萌新来说怎么办呢?就要设一个默认值\(Center\),对于AGC,ARC,ABC这个值分别为\(1200,1000,800\).
设这场比赛rated人数为\(n\),它们的\(APerf\)值为\(APerf_i\),那么排名为\(r\)的人的Perf值为\(X\),\(X\)定义为
\[
\sum_{i=1}^n\frac{1}{1+6.0^{(X-APerf_i)/400.0}}=r-0.5
\]
这个方程的解,那对于并列的人来说怎么办呢,\(r\)就取它们rank的平均值。
对于第一场比赛是需要特判的(为了防止第一场比赛的影响太小)
\[
Perf=(Perf-Center)*1.5+Center
\]
还有你的\(RPerf\)值(Real Performance)
\[
RPerf=\min(Perf,RATEDBOUND+400)
\]
最后的问题是如何计算Rating,设
\[
F(n)=\frac{\sqrt{\sum_{i=1}^n0.81^i}}{\sum_{i=1}^n0.9^i}
\]
\[
f(n)=\frac{F(n)-F(\infty)}{F(1)-F(\infty)}\times 1200
\]
设
\[
g(X)=2^{\frac{X}{800}}
\]
则
\[
Rating=g^{-1}(\frac{\sum_{i=1}^kg(RPerf_i-f(i))\times 0.9^i}{\sum_{i=1}^k0.9^i})
\]
为什么\(g(X)\)要设成一个指数函数呢?因为当你被降智的时候,你有可能只会做1题,也有可能做4题,可能对于你来说差别不大。但是可能做出5题和做出6题的差别就很大了。而设成指数函数就可以让你在发挥超常的时候高兴很久,在被降智的时候也只用伤心一会儿。(逃
Atcoder Rating System的更多相关文章
- 从Elo Rating System谈到层次分析法
1. Elo Rating System Elo Rating System对于很多人来说比较陌生,根据wikipedia上的解释:Elo评分系统是一种用于计算对抗比赛(例如象棋对弈)中对手双方技能水 ...
- Elo rating system 模拟
package org.cc.foo_008; import java.util.ArrayList; import java.util.List; import java.util.Random; ...
- Codeforces Rating System
来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,虽然不是为了方便自己查阅用的. 首先,对于人 \(i\),定义 \(r_i\) 是他的 rating,对于人 \(i,j\),定义 \( ...
- Elo rating system(Elo 打分体系)
A.B 两个待比较.评价的对象,分别打分为 RA,RB,则各自获胜的期望值为: ⎧⎩⎨⎪⎪⎪⎪⎪⎪EA=11+10(RB−RA)/400.EB=11+10(RA−RB)/400. 不妨令 QA=10R ...
- elo system
今天了解了一下游戏中的PVP模块的实现,大多数的游戏都使用到了ELO算法,刚开始的时候并不清楚这个算法是做什么的,对此开始大量查找有关于ELO算法的资源,功夫不负有心人,总算找到一些有用的资源了. 先 ...
- GO语言的开源库
Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org ...
- 运行(WIN+R)中能使用的命令:ms-settings:,shell:,cpl,mmc...
ms-settings: --- DESC --- --- CMD --- Battery Saver ms-settings:batterysaver Battery Saver Settings ...
- Security Checklist (路由器安全checklist)
Security Checklist Website by Michael Horowitz Home | Introduction | Router Bugs | Security Che ...
- android之RatingBar控件用法
MainActivity.java package com.example.mars_2500_ratingbar; import android.support.v7.app.ActionBarAc ...
随机推荐
- PowerBuilder学习笔记之调用事件和函数
2.7.1调用事件和函数 完整语法:[ObjectName]ancestorclass::[type][when]name([argumnetlist]) 说明:ObjectName:指定函数或事件的 ...
- Ubuntu Server Swap 分区设置
方案一:仅在内存耗尽的情况下才使用 swap 分区 # 首先进入 sudo 模式 sysctl vm.swappiness=0 # 临时生效 echo "vm.swappiness = 0& ...
- AtomicIntegerFieldUpdater和AtomicInteger
为什么有了AtomicInteger还需要AtomicIntegerFieldUpdater? 当需要进行原子限定的属性所属的类会被创建大量的实例对象, 如果用AtomicInteger, 每个实例里 ...
- sqlserver exists 与 in 的区别
使用 EXISTS 方式 select * from A a where EXISTS(select b.mainInfoId from B b where b.mainInfoId=a.main ...
- java实现HTTP请求 HttpUtil
示例: package com.sensor.utils; import java.net.HttpURLConnection; import java.net.URL; public class H ...
- Canvas 绘制一个像素风电子时钟
想法是在 Canvas 上绘制由小方块组成的数字. 第一步是实现绘制小方块的方法,先画出一个边长为 5 的 10x10 个方块,使用两个 for 循环很简单就能完成. for (let i = 0; ...
- 【日语】日语N5学习
副词与连接词 ~から: 从-(表示时间.场所起点) ~まで: 到-(表示时间.场所终点) と: 和(并列时用) えーと: 嗯 いっしょに: 一起 ちょっと: 一点儿 いつも: 经常.总是 ときどき: ...
- EWA不能及时通过邮件接收
1. 确保EWA已经配置成功.可以通过SW_workcenter查看 2.确保EWA的邮箱设置成功 3. 检查EWAreport产生的时间 卫星系统:SDCCN 在tab"done" ...
- java - day015 - 手写双向链表, 异常(续), IO(输入输出)
类的内存分配 加载到方法区 对象在堆内存 局部变量在栈内存 判断真实类型,在方法区加载的类 对象.getClass(); 类名.class; 手写双向链表 package day1501_手写双向链表 ...
- 运维开发笔记整理-Request对象与Response对象
运维开发笔记整理-Request对象与HttpResponse对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.request对象 1>.什么是request 首先,我 ...