0%

动态分值函数

现状分析

当前公开的竞赛系统采用的动态分值计算模型存在两个关键性缺陷:

  • 绝对数值依赖:基于解出题目绝对人数计算分值,导致不同规模赛事中题目衰减曲线呈现非线性差异

  • 参数耦合问题:衰减斜率参数k需要手动调整,与临界比例R_Critical、最低分值R_Minscore形成隐式耦合关系,影响参数配置的直观性

最近改进了一种动态分值函数,可通过调整接触题目人数的临界比例来计算动态分值【目前简单测了下 感觉还算合理 QwQ】。初衷还是希望在赛事平台中可以更好的去分配好题目分值与题目难度的关系,让办赛人员更易操作,选手得分更有积极性。

改进点:

  • 建立参赛规模无关的衰减机制,采用相对解题比例替代绝对人数

  • 显式定义临界解题比例参数(R_Critical),直接控制分值衰减触发阈值

动态分值公式

题目难度设定

假设将题目划分为5个难度:签到、简单、中等、困难、挑战,随着题目难度的升高,R_Critical将会降低。

设置一组参数 具体如下:

1
2
3
4
5
6
7
difficulties = [
{"name": "签到题", "Initial": 100, "Critical_ratio": 0.95, "Min_ratio": 0.5},
{"name": "简单题", "Initial": 100, "Critical_ratio": 0.85, "Min_ratio": 0.5},
{"name": "中等题", "Initial": 100, "Critical_ratio": 0.50, "Min_ratio": 0.5},
{"name": "困难题", "Initial": 100, "Critical_ratio": 0.35, "Min_ratio": 0.5},
{"name": "挑战题", "Initial": 100, "Critical_ratio": 0.25, "Min_ratio": 0.5}
]

分值曲线如下所示:

正常来说 不同难度的题目的分值也不同,我们将题目难度及对应分值稍作调整:

1
2
3
4
5
6
7
difficulties = [
{"name": "签到题", "Initial": 80, "Critical_ratio": 0.95, "Min_ratio": 0.5},
{"name": "简单题", "Initial": 120, "Critical_ratio": 0.85, "Min_ratio": 0.5},
{"name": "中等题", "Initial": 160, "Critical_ratio": 0.50, "Min_ratio": 0.5},
{"name": "困难题", "Initial": 200, "Critical_ratio": 0.35, "Min_ratio": 0.5},
{"name": "挑战题", "Initial": 240, "Critical_ratio": 0.25, "Min_ratio": 0.5}
]

分值曲线如下所示:

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------