Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算一个post';s基于用户的分数';你的名声如何?_Java_Algorithm_Weighted_Weighted Average - Fatal编程技术网

Java 如何计算一个post';s基于用户的分数';你的名声如何?

Java 如何计算一个post';s基于用户的分数';你的名声如何?,java,algorithm,weighted,weighted-average,Java,Algorithm,Weighted,Weighted Average,我读过很多关于声誉的话题,但没有一个适合我的需要。 我正在实施一个问答网站。每个帖子(问题/答案)都可以投票。每个用户都有一个声誉分数。取决于用户的声誉,每个帖子的投票权重更大。 然而,举例来说,我不想做一个无休止的if-else if (0 < user_reputation < 10) then post_vote += 1 if (10 < user_reputation < 20) then post_vote += 2 if (20 < user_repu

我读过很多关于声誉的话题,但没有一个适合我的需要。 我正在实施一个问答网站。每个帖子(问题/答案)都可以投票。每个用户都有一个声誉分数。取决于用户的声誉,每个帖子的投票权重更大。 然而,举例来说,我不想做一个无休止的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
..........
如果(0<用户声誉<10),则post\u vote+=1
如果(10<用户声誉<20),则post_投票+=2
如果(20<用户声誉<30),则post_投票+=3
如果(30<用户声誉<40),则post_投票+=4
..........
请建议一个更好的方法(一个公式左右)来计算帖子的投票,而不使用上面无休止的if/else。
我正在使用Java。

使用
post\u vote+=(int)(用户声誉/10)

如果您看到
10与1
40与4
之间存在逻辑关系:)那么10呢?它是1还是2?我想你会发现,随着用户获得更多的声誉,仅仅除以10仍然会非常(太)有利于声誉高的用户。在过去,我发现添加一些
Log2(用户声誉)
可以防止高声誉用户完全占据主导地位。感谢Jim Mischel,你的解决方案和Pawan的组合正是我想要的。是的,你收到了我的评论:)+1。