我正在使用基于Reddit的这个算法,并且想要改变它,因此它显示了上升的帖子而不是热门。我更改了哪个号码,以便发布和现在之间的时间对返回的分数有更大的影响?我试过改变一些数字,但仍然没有得到任何结果
谢谢堆
function calculate_rank_sum($score, $created_at) {
$order = log10(max(abs($score), 1));
if ( $score > 0 ) {
$sign = 1;
} elseif ( $score < 0 ) {
$sign = -1;
} else {
$sign = 0;
}
$seconds = intval(($created_at - mktime(0, 0, 0, 1, 1, 1970))/86400);
$long_number = ($order + $sign) * ($seconds / 45000);
return round($long_number, 7);
}
答案 0 :(得分:0)
这是基本上计算得分的线。
$long_number = ($order + $sign) * ($seconds / 45000);
如果您希望创建的时间产生更大的影响,我建议您减少45000
和/或抵消($order + $sign)
。这是一个论坛,需要进行大量的微调才能完全按照你想要的方式进行调整,所以我建议最好的办法就是进行大量的单元测试,然后进行大量的调整。
答案 1 :(得分:0)
您的公式有误:
($order + $sign) * ($seconds / 45000)
您添加了不应包含的括号。如果您查看https://gist.github.com/zeuxisoo/882820,应该是:
$order + $sign * $seconds / 45000
但即使如此,它也是基于旧的reddit算法which was later fixed to:
sign * order + seconds / 45000
您可以减少45000
来增加时间分量的权重。