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


首先,对于人 \(i\),定义 \(r_i\) 是他的 rating,对于人 \(i,j\),定义 \(P_{i,j}\) 为在一场比赛中 \(i\) 比 \(j\) 强的概率。

Codeforces 想尽力让这个柿子成立:

\[P_{i,j}=\frac{1}{1+10^{\frac{r_j-r_i}{400}}}\]

一场比赛开始前,定义 \(seed_i\) 为第 \(i\) 个人的期望排名。明显有 \(seed_i=1+\sum\limits_{j\ne i}P_{j,i}\)。

比赛结束后(如果此时还是 rated 的话),取 \(m_i\) 为 \(seed_i\) 和实际排名 \(rank_i\) 的几何平均数(\(m_i=\sqrt{seed_irank_i}\))。把 \(m_i\) 当作排名计算出这个人在这场比赛中的表现 rating \(R_i\),然后这个人的 rating 变化是 \(d_i=\frac{R_i-r_i}{2}\)。

不过这还没完。为了让 rating 平均变化更接近 0,还要进行微调。

再定义一个数 \(inc\),让所有 \(d_i+=inc\)。

计算方法,先进行第一次微调,这次让 \(inc=-1-\sum d_i\)。这保证了所有人的平均变化靠近 0 又在 0 以下。

然后进行第二次微调,取比赛前 rating 前 \(s=\min(n,4\sqrt{n})\) 高的人(\(n\) 是参赛人数),合理设置 \(inc\) 使得前 \(s\) 个人的平均变化为 0。但是这个 \(inc\) 也不能太大,所以 \(inc=\min(\max(inc,-10),0)\)。用这个 \(inc\) 进行第二次微调。这同时让所有人的平均变化在 0 的更下面。(smg 啊……)

所以说,这 rating 计算比隔壁某 A 姓 OJ 恶心多了,对失常发挥一点都不友好……打得好升的少,打的烂掉的多……(几何平均数更靠近小的数)

Codeforces 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 22C System Administrator(构造水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud System Administrator Bob got a job as a s ...

  4. codeforces Registration system

     Registration system A new e-mail service "Berlandesk" is going to be opened in Berland in ...

  5. Atcoder Rating System

    来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,只是为了方便自己查阅用的. 对于你的每一场rated比赛,会有一个Performance值\(X_i\),你的rating是\(X_i- ...

  6. CodeForces 22C System Administrator

    把v和2结点交换, 1和v连,其它点和v之间能够互相连. #include <iostream> #include <cstdlib> #include <cstring ...

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

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

  8. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3)(A.B.C,3道暴力题,C可二分求解)

    A. Is it rated? time limit per test:2 seconds memory limit per test:256 megabytes input:standard inp ...

  9. Codeforces Round#412 Div.2

    A. Is it rated? 题面 Is it rated? Here it is. The Ultimate Question of Competitive Programming, Codefo ...

随机推荐

  1. Matplotlib绘图及动画总结

    目录 Matplotlib绘图总结 绘图原理 block模式(python默认) interactive模式(ipython模式默认) 深入子图 子图表示 子图绘图 绘制动画 参考链接 Matplot ...

  2. HTML连载46-浮动元素字围现象、浮动练习

    一.浮动元素的字围现象 div{ float:left; width:100px; height:100px; background-color: red; border:1px solid blac ...

  3. URLDecoder异常Illegal hex characters in escape (%)

    URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...

  4. pytest框架之pytest-html报告生成

    一.关于安装 pytest-html属于pytest的一个插件,使用它需要先安装 pip install pytest-html pytest可以生成多种样式的结果: 生成JunitXML格式的测试报 ...

  5. 解决邮件发送错误:503 Error: need EHLO and AUTH first

    引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ...

  6. hive on spark 常用配置

    常用设置 reset; set hive.execution.engine=spark; set hive.map.aggr = false; set hive.auto.convert.join = ...

  7. CAT 监控搭建

    简介 CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务. 已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统 ...

  8. c# 字符串中全角和半角字符互转

    public class ConvertDBCAndSBC { /// <summary>半角转成全角 /// 半角空格32,全角空格12288 /// 其他字符半角33~126,其他字符 ...

  9. python IPy库

    Website: https://github.com/haypo/python-ipy/ 安装: easy_install IPy   >>> from IPy import IP ...

  10. 通过Desktop.ini设置文件夹备注以及图标

    1.新建一个文件夹temp,进入此文件夹,建立desktop.ini文件,编辑内容为: ; 文件夹图标 [.ShellClassInfo] ;设置文件夹的备注 InfoTip=this is temp ...