我在PHP / MySQL中有一个排行榜,以百分比递减显示用户。我计算百分比:
$percentage = ($correct / $total) * 100
我的问题是如何计算尝试次数(风险),以便让100%的用户获得100%的用户不高于使用率为80%的用户为93.8%
有什么想法吗?
答案 0 :(得分:1)
这只是您订购结果的一部分
SELECT (correct / $total) * 100 AS percent FROM table ORDER BY percent DESC, attempts ASC;
答案 1 :(得分:0)
取决于风险因素应该有多大的影响力! 只是在这里猜测,但我相信不会除以总数会导致数字过大,因此可以实现各种解决方案,一些建议可以将结果乘以(1 +($ total / 100))或进一步减少影响您可以乘以的每个新尝试(1 +(sqrt($ total)/ 100)) - 尝试使用其他值,100仅用作示例或其他非线性函数,如log。
答案 2 :(得分:0)
计算普通用户的百分比,并为每个用户提供10次平均尝试的基线(某些值为10)。
说平均值为50%。然后你计算$percentage = ($correct+5)/($total+10)*100
。一直表现良好的用户最终仍将名列前茅(因为他们的成功将超过你开始时的平均分数,但是一个良好开端的用户不会跳到顶端)。
例如,在此系统下,您的第一位用户现在的分数为6/11 = 54%
,而您的第二位用户将拥有80 / 90 = 88%
。