确实,这是一个数学问题,我正在尝试基于两件事来给用户排名:做某事所花费的时间和一个百分比。
基本上,最短的时间+最高的百分比会给出最佳的排名。相反,最长的时间+最低的百分比将给出最差的排名。
我正在尝试为此找到一个公式。理想情况下,它将返回x点,然后我将根据用户各自拥有的点对用户进行排序。
示例(完全随机):
-用户有94%和2.3秒:他将获得123的排名点
-用户有56%和2.3秒:他将获得87的排名点
-用户有56%和5.1秒:排名将达到73
选项:百分比应比最终结果中的时间重
一个好的公式将是什么?
有两件事要考虑:
影响
基本上,这将分别对两个因素分别评分,然后对其进行归一化并权衡。
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] 删除。
我来说两句