首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reddit排名算法- Rising

Reddit排名算法- Rising
EN

Stack Overflow用户
提问于 2014-02-03 17:19:36
回答 2查看 1.3K关注 0票数 0

我正在使用这个基于Reddit的算法,并想要改变它,使其显示上升的帖子,而不是热门。我应该更改哪个数字,以使发帖和现在之间的时间对返回的分数有更大的影响?我试着改了几个号码,但还是没什么结果。

感谢堆

代码语言:javascript
复制
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);
}
EN

回答 2

Stack Overflow用户

发布于 2014-02-03 17:39:56

这是一条计算分数的线。

代码语言:javascript
复制
$long_number = ($order + $sign) * ($seconds / 45000);

如果你想让创建的时间产生更大的影响,我建议减少45000,和/或抵消($order + $sign)。这是一个论坛,需要进行大量的微调才能达到您想要的效果,所以我建议最好的做法是执行大量的单元测试,并进行大量的调整。

票数 0
EN

Stack Overflow用户

发布于 2019-10-03 04:50:30

您的公式错误:

代码语言:javascript
复制
($order + $sign) * ($seconds / 45000)

您添加了不应该出现的圆括号。如果你看看https://gist.github.com/zeuxisoo/882820,它应该是:

代码语言:javascript
复制
$order + $sign * $seconds / 45000

但即便如此,这也是基于旧的reddit算法which was later fixed to:

代码语言:javascript
复制
sign * order + seconds / 45000

可以减小45000以赋予时间组件更多权重。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21523475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档