1

我正在开发一个小型 PHP 脚本,用于计算我的发布平台中用户的比率。

这个比率应该使用我准备好的这两个变量来计算:

$user_comment_count= 用户的总评论数

$user_post_count= 用户的总文章数。

为了保持稳定的比例,用户每篇文章需要 2 条评论。所以,如果用户发表了 5 篇文章和 10 条评论,那么用户的比例就是1.00。如果 5 个帖子和 15 条评论,那么1.50. 用户可以拥有的最低比率是0.00并且不应该对最高设置限制。

如何使用这两个变量在 PHP 中进行此计算?

4

2 回答 2

3

最明显的解决方案:

$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
于 2013-05-24T23:36:41.820 回答
2
$ratio = $user_comment_count / max(1, $user_post_count * 2);

这也将起作用,尽管第一个解决方案可能更具可读性:

$ratio = $user_comment_count / ($user_post_count * 2 || 1);
于 2013-05-24T23:40:38.217 回答