Tim*_*Tim 6 math voting rating-system
我在网站上实现了一个简单的上/下投票系统,我跟踪个人投票以及投票时间和唯一用户iD(散列IP).
我的问题不是如何计算投票的百分比或总和 - 更重要的是,根据投票确定好分数的好算法是什么?
我发现按纯投票百分比排序是不可接受的,以及简单地计算upvotes.
考虑这个例子:
理想的系统将A放在第一位,然后是B,然后是C.
在纯百分比方案中,订单为C> A> B.(错误)在纯投票计数方案中,订单为B> A> C.(错误)
我有一个基于系统对分数的信心的"混合"算法的想法,可能是这样的:
// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1 / totalvotes+1) * sqrt(1 / totalvotes))
Run Code Online (Sandbox Code Playgroud)
但是,在我从现在开始调整算法到日落之前,我希望向社群询问是否有任何我已经知道的非常明确的算法,我根本就不知道.
我也有每个投票的日期数据 - 但是,网站的内容不是非常时间敏感,所以我真的不在乎"什么是热点".
我知道这并不能回答你的问题,但我只是花了 3 分钟的时间来寻找一些公式,然后......检查一下:) A 列是赞成票,B 列是反对票:)
=(LN((A1+1)/(A1+B1+1))+1)*LN(A1)
5 3 0.956866995
4 1 1.133543015
5 4 0.787295787
1 0 0
6 4 0.981910844
2 8 -0.207447157
6 5 0.826007385
3 3 0.483811507
4 0 1.386294361
5 0 1.609437912
6 1 1.552503332
5 2 1.146431478
100 100 -3.020151034
10 10 0.813671022
Run Code Online (Sandbox Code Playgroud)