本项目受 Codeforces rating 预测项目 https://github.com/Patchouli-7/Patchouli-7.github.io 启发,借用了其预测公式。
一个洛谷 -> Codeforces Rating预测小网页。旨在通过统计用户在洛谷的做题情况,预测其 Codeforces Rating 。
-
数据来源
- 从用户的
user.json
文件中读取passedProblems
。 - 每道题包含难度等级
difficulty
(1~7)。
- 从用户的
-
难度与 Codeforces Rating 对应关系
洛谷难度等级 名称 对应 CF Rating 1 入门 800 2 普及− 1000 3 普及/提高− 1400 4 普及+/提高 1800 5 提高+/省选− 2200 6 省选/NOI− 2700 7 NOI/NOI+/CTSC 3200 相关数据来源:https://codeforces.com/blog/entry/131266
提醒:由于难度映射较为粗糙,虽然预测时倾向于保守,结果也仅供参考,请勿过度解读!
-
逐题更新 Rating
- 从初始值 800 开始,按模拟做题顺序(由易到难)依次更新预测 rating。
- 每道题的贡献与题目难度、当前预测值和递减效应相关。
-
$i$ = 当前做题数 -
$N$ = 总做题数 -
$k, p$ = 固定参数 - 随着做题进度,题目难度的权重逐渐放大。
-
$α$ 控制递减速度 -
$i$ 越大,单题收益越小。
-
$Δ$ =$mapped$ - 当前$rating (R)$ -
$L$ 控制缩放平滑度 - 防止单道高难题导致
$rating$ 暴涨。
-
$Δ$ 越大 → 期望越低 → 解出高难题收益越大。
参数 | 设定值 | 作用 | 影响 |
---|---|---|---|
K_FIXED |
230 | 每道题的最大贡献系数。 | 与收益整体正相关 |
L_FIXED |
660 | 控制高难题收益缩放。 | 与单题涨分负相关。 |
ALPHA |
0.4625 | 控制递减效应。 | 与边际收益下降正相关。 |
k |
0.65 | 放大因子强度。 | 与难度收益正相关。 |
p_exp |
3.5 | 放大因子指数。 | 与难度收益正相关。 |
说明:由于难度映射较为粗糙,单题收益和难题收益相比参考模型分别放缩至
-
打开洛谷个人主页,网址形式应当如下:
https://www.luogu.com.cn/user/uid
其中
uid
为用户编号。在最后加上?_contentOnly=1
,回车,即访问如下网址:https://www.luogu.com.cn/user/uid?_contentOnly=1
-
右键保存该页面,得到
uid.json
文件。 -
打开
index.html
或访问 https://endeavourchn.github.io/Luogu-Rating-Predictor/ (GitHub静态托管访问较慢,请视情况选择),选择刚刚下载的uid.json
文件,预测结果即刻呈现。
若有建议与想法,欢迎提交 Pull Request 或是创建 Issues!