来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,只是为了方便自己查阅用的。


对于你的每一场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的更多相关文章

  1. 从Elo Rating System谈到层次分析法

    1. Elo Rating System Elo Rating System对于很多人来说比较陌生,根据wikipedia上的解释:Elo评分系统是一种用于计算对抗比赛(例如象棋对弈)中对手双方技能水 ...

  2. Elo rating system 模拟

    package org.cc.foo_008; import java.util.ArrayList; import java.util.List; import java.util.Random; ...

  3. Codeforces Rating System

    来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,虽然不是为了方便自己查阅用的. 首先,对于人 \(i\),定义 \(r_i\) 是他的 rating,对于人 \(i,j\),定义 \( ...

  4. Elo rating system(Elo 打分体系)

    A.B 两个待比较.评价的对象,分别打分为 RA,RB,则各自获胜的期望值为: ⎧⎩⎨⎪⎪⎪⎪⎪⎪EA=11+10(RB−RA)/400.EB=11+10(RA−RB)/400. 不妨令 QA=10R ...

  5. elo system

    今天了解了一下游戏中的PVP模块的实现,大多数的游戏都使用到了ELO算法,刚开始的时候并不清楚这个算法是做什么的,对此开始大量查找有关于ELO算法的资源,功夫不负有心人,总算找到一些有用的资源了. 先 ...

  6. GO语言的开源库

    Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org ...

  7. 运行(WIN+R)中能使用的命令:ms-settings:,shell:,cpl,mmc...

    ms-settings: --- DESC --- --- CMD --- Battery Saver ms-settings:batterysaver Battery Saver Settings ...

  8. Security Checklist (路由器安全checklist)

    Security Checklist Website by     Michael Horowitz  Home | Introduction | Router Bugs | Security Che ...

  9. android之RatingBar控件用法

    MainActivity.java package com.example.mars_2500_ratingbar; import android.support.v7.app.ActionBarAc ...

随机推荐

  1. 题解-APIO2019奇怪装置

    problem loj-3144 题意概要:设函数 \(f(t)\) 的返回值为一个二元组,即 \(f(t)=((t+\lfloor \frac tB\rfloor)\bmod A, t\bmod B ...

  2. AtCoder Grand Contest 034

    A:如果C在D左侧,显然先让B到达终点再让A走即可,否则先判断一下A是否可以在某处超过B.也就是先判断一下起点与终点之间是否有连续的障碍,若有则无解:然后若C在D左侧输出Yes,否则判断B和D之间是否 ...

  3. consul客户端配置微服务实例名称和ID

    consul客户端必须配置微服务实例名称和ID,微服务启动的时候需要将名称和ID注册到注册中心,后续微服务之间调用也需要用到. 名称可以通过以下两种方式配置,优先级从高到低.两个都不配置则默认服务名称 ...

  4. linux环境下jdk安装

    1,下载jdk版本 jdk-7u25-linux-x64.tar.gz  和windows jdk一致,jvm有区别: 2,拷贝到 /home目录下.通过tar -zxvf jdk-7u25-linu ...

  5. centos7上使用git clone出现问题

    centos 7  git clone时出现不支持协议版本的问题 unable to access 'https://github.com/baloonwj/TeamTalk.git/': Peer ...

  6. J.U.C之AQS:阻塞和唤醒线程

    此篇博客所有源码均来自JDK 1.8 在线程获取同步状态时如果获取失败,则加入CLH同步队列,通过通过自旋的方式不断获取同步状态,但是在自旋的过程中则需要判断当前线程是否需要阻塞,其主要方法在acqu ...

  7. 解决 React Native:The development server returned response error code: 404

    解决方法: 打开android/app/build.gradle compile 'com.facebook.react:react-native:+' 修改为: compile ("com ...

  8. Computer Vision_33_SIFT:An Improved RANSAC based on the Scale Variation Homogeneity——2016

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  9. Linux命令——lsb_release

    简介 LSB是Linux Standard Base(Linux标准库)的缩写, lsb_release命令 用来与具体Linux发行版相关的Linux标准库信息. 注:LSB的译法有Linux标准库 ...

  10. ubuntu18 搭建ftp服务器,以及文件目录权限问题

    有时候呢我们有一台本地的台式机或者云服务器,我们想要搭个ftp服务器好让我们在内网/外网中方便的传输.保存文件,这样别的任何电脑啊,设备啊,只要访问这个ftp的地址,就可以进行文件传输啦!由于我现在台 ...