0

我有一个 PHP/MySQL 排行榜,按百分比降序显示用户。我计算百分比:

$percentage = ($correct / $total) * 100

我的问题是如何考虑尝试次数(风险),以便假设 100% 中 1 分的用户不高于 93.8% 中 80 分中 75 分的用户

有任何想法吗?

4

3 回答 3

1

这只是您订购结果的方式的一部分

SELECT (correct / $total) * 100 AS percent FROM table ORDER BY percent DESC, attempts ASC;
于 2012-09-17T00:41:22.500 回答
1

取决于风险因素应该有多大的影响!只是在这里猜测,但我相信不除以总数会导致数字太大,因此可以实施各种解决方案,一些建议可能是将结果乘以 (1 + ($total / 100)) 或进一步减少影响您可以乘以 (1 + (sqrt($total) / 100)) 的每次新尝试 - 尝试其他值,100 仅用作示例或其他非线性函数,如 log。

于 2012-09-17T00:46:45.843 回答
0

计算平均用户拥有的百分比,并为每个用户提供 10 次平均尝试的基线(对于 10 的某个值)。

假设平均值为 50%。然后你会计算$percentage = ($correct+5)/($total+10)*100. 始终表现良好的用户最终仍会脱颖而出(因为他们的成功将超过您开始使用他们的平均分数,但起步良好的用户不会跳到顶部)。

例如,在此系统下,您的第一个用户现在的得分为 ,6/11 = 54%而您的第二个用户的得分为80 / 90 = 88%.

于 2012-09-17T00:47:01.860 回答