最明显的解决方案:
$ratio = ($user_comment_count)/(2*$user_post_count);
更深入地思考:
[1] 好的,您可能希望同时奖励发布和评论。因此,该比率需要随着帖子数和评论数单调上升。因此,上述解决方案不能满足这一点。
[2] 你有点希望用户每个帖子至少有2 条评论,否则用户将受到惩罚。
所以新的解决方案是:
function base_score($user_post_count, $user_comment_count) {
return $alpha*$user_post_count + $beta*$user_comment_count;
}
function score($user_post_count, $user_comment_count) {
if (($user_comment_count >= 2*$user_post_count) || ($user_post_count = 0)) {
return base_score($user_post_count, $user_comment_count);
}else {
$deficit = $user_comment_count / (2.0*$user_post_count);
return base_score($user_post_count, $user_comment_count)*$deficit;
}
}
因此,$user_comment_count
从 中缺失2*$user_post_count
的越多,实际得分就越会缩小。
$alpha
$beta
分别是帖子数和评论数的重要因素。受制于:
0 <= alpha, beta