我正在开发一个小型PHP脚本,用于计算发布平台中用户的比例。
应该使用我准备好的这两个变量来计算这个比率:
$user_comment_count
=用户的总评论数
$user_post_count
=用户的文章总数。
为了保持稳定的比例,用户每篇文章需要2条评论。因此,如果用户发布了5篇文章和10条评论,则用户的比例为1.00
。如果有5个帖子和15个评论,那么1.50
。用户可以拥有的最低比率是0.00
,并且应该没有设置最高限制。
如何使用这两个变量在PHP中进行此计算?
答案 0 :(得分: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
答案 1 :(得分:2)
$ratio = $user_comment_count / max(1, $user_post_count * 2);
虽然第一种解决方案可能更具可读性,但这也有效:
$ratio = $user_comment_count / ($user_post_count * 2 || 1);