Codeforces Rating System
来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,虽然不是为了方便自己查阅用的。
首先,对于人 \(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的更多相关文章
- 从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 22C System Administrator(构造水题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud System Administrator Bob got a job as a s ...
- codeforces Registration system
Registration system A new e-mail service "Berlandesk" is going to be opened in Berland in ...
- Atcoder Rating System
来翻译一下官方文档,但是建议看英文原文,本文可能会出现一些错误,只是为了方便自己查阅用的. 对于你的每一场rated比赛,会有一个Performance值\(X_i\),你的rating是\(X_i- ...
- CodeForces 22C System Administrator
把v和2结点交换, 1和v连,其它点和v之间能够互相连. #include <iostream> #include <cstdlib> #include <cstring ...
- Elo rating system(Elo 打分体系)
A.B 两个待比较.评价的对象,分别打分为 RA,RB,则各自获胜的期望值为: ⎧⎩⎨⎪⎪⎪⎪⎪⎪EA=11+10(RB−RA)/400.EB=11+10(RA−RB)/400. 不妨令 QA=10R ...
- 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 ...
- Codeforces Round#412 Div.2
A. Is it rated? 题面 Is it rated? Here it is. The Ultimate Question of Competitive Programming, Codefo ...
随机推荐
- Matplotlib绘图及动画总结
目录 Matplotlib绘图总结 绘图原理 block模式(python默认) interactive模式(ipython模式默认) 深入子图 子图表示 子图绘图 绘制动画 参考链接 Matplot ...
- HTML连载46-浮动元素字围现象、浮动练习
一.浮动元素的字围现象 div{ float:left; width:100px; height:100px; background-color: red; border:1px solid blac ...
- URLDecoder异常Illegal hex characters in escape (%)
URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...
- pytest框架之pytest-html报告生成
一.关于安装 pytest-html属于pytest的一个插件,使用它需要先安装 pip install pytest-html pytest可以生成多种样式的结果: 生成JunitXML格式的测试报 ...
- 解决邮件发送错误:503 Error: need EHLO and AUTH first
引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ...
- hive on spark 常用配置
常用设置 reset; set hive.execution.engine=spark; set hive.map.aggr = false; set hive.auto.convert.join = ...
- CAT 监控搭建
简介 CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务. 已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统 ...
- c# 字符串中全角和半角字符互转
public class ConvertDBCAndSBC { /// <summary>半角转成全角 /// 半角空格32,全角空格12288 /// 其他字符半角33~126,其他字符 ...
- python IPy库
Website: https://github.com/haypo/python-ipy/ 安装: easy_install IPy >>> from IPy import IP ...
- 通过Desktop.ini设置文件夹备注以及图标
1.新建一个文件夹temp,进入此文件夹,建立desktop.ini文件,编辑内容为: ; 文件夹图标 [.ShellClassInfo] ;设置文件夹的备注 InfoTip=this is temp ...