基于两个因素的排名公式

涨涨客场

确实,这是一个数学问题,我正在尝试基于两件事来给用户排名:做某事所花费的时间和一个百分比。

基本上,最短的时间+最高的百分比会给出最佳的排名。相反,最长的时间+最低的百分比将给出最差的排名。

我正在尝试为此找到一个公式。理想情况下,它将返回x点,然后我将根据用户各自拥有的点对用户进行排序。

示例(完全随机):
-用户有94%和2.3秒:他将获得123的排名点
-用户有56%和2.3秒:他将获得87的排名点
-用户有56%和5.1秒:排名将达到73

选项:百分比应比最终结果中的时间重

一个好的公式将是什么?

泰斯·艾格伯格(Theis Egeberg)

有两件事要考虑:

  1. 每个因素的影响
  2. 因素之间的交叉影响

影响

基本上,这将分别对两个因素分别评分,然后对其进行归一化并权衡。

score = (factor_A_impact * player_score_of_factor_A / maximum_score_of_factor_A) + (factor_B_impact * player_score_of_factor_B / maximum_score_of_factor_B);

交叉

这增加了交叉效果。实际上,使分数A比B重要,因为它影响B的终值。交叉因子的范围是1到0。0既不调制b的影响,而1则完全由B调制一个因素。您可以为此添加任意数量的因子,并以各种复杂的方式将它们链接起来。

crossOverFactor = 0.2
score_factor_A_normalised = (player_score_of_factor_A / maximum_score_of_factor_A);
score_factor_B_normalised = (player_score_of_factor_B / maximum_score_of_factor_B);

score_B_crossOveredByA = score_factor_B_normalised*(1-crossOverFactor) + (score_factor_A_normalised*crossOverFactor*score_factor_B_normalised);
score = (score_factor_A_normalised*factor_A_impact) + (score_B_crossOveredByA * factor_B_impact);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章