【发布时间】:2013-09-18 10:13:37
【问题描述】:
我读过很多关于声誉的话题,但没有一个符合我的需要。 我正在实施一个问答网站。每个帖子(问题/答案)都可以投票。每个用户都有一个信誉分数。根据用户的声誉,每个帖子的投票权重更大。 但是,例如,我不想做无休止的 if else,例如
if (0 < user_reputation < 10) then post_vote += 1
if (10 < user_reputation < 20) then post_vote += 2
if (20 < user_reputation < 30) then post_vote += 3
if (30 < user_reputation < 40) then post_vote += 4
..........
请提出一种更好的方法(一个公式左右)来计算帖子的投票,而不使用上述无穷无尽的 if/else。 我正在使用 Java。
【问题讨论】:
-
如果您发现
10 with 1和40 with 4之间存在逻辑关系:) -
10个呢?是 1 还是 2?
-
我怀疑你会发现,随着用户获得更多声誉,简单地除以 10 仍然会非常(过多)有利于声誉高的用户。在过去,我发现添加
Log2(user_reputation)可以防止高声誉用户完全占据主导地位。 -
感谢 Jim Mischel,您的解决方案和 Pawan 的结合正是我想要的。
标签: java algorithm weighted weighted-average