为什么某些变量用于“热度”计算?

时间:2011-03-17 16:37:39

标签: algorithm reddit

我最近阅读了a blog post about the Reddit "hotness" formula。下面显示的公式似乎是使用的公式。有几个变量我不明白他们为什么会被选中。我打算使用这个公式作为我参与的应用程序的参考,所以我想知道为什么使用这些变量的基础。

2005年12月8日 - 为什么要使用这个日期?另外,为什么要使用偏移时间呢?为什么不使用纪元?这是一个使用的任意日期,以便它与平台无关吗?

2nd - 45000 - 为什么使用45000作为除数?这是一个任意数字还是具有特定的含义或目的?

t = (time of entry post) - (Dec 8, 2005)
x = upvotes - downvotes

y = {1 if x > 0, 0 if x = 0, -1 if x < 0)
z = {1 if x < 0, otherwise x}

log(z) + (y * t)/45000

1 个答案:

答案 0 :(得分:4)

  

2005年12月8日 - 为什么要使用这个日期?另外,为什么要使用偏移时间呢?为什么不使用纪元?这是一个使用的任意日期,以便它与平台无关吗?

我怀疑这是Reddit原始代码的“纪元”日期。这将使它成为一个很好的选择,因为它使t变量开始接近于零,这将使函数更稳定。

  

2nd - 45000 - 为什么使用45000作为除数?这是一个任意数字还是具有特定的含义或目的?

这实际上是时间的缩放功能。这个数字越大,年龄对整体方程的影响就越小。我怀疑在经过一些测试后选择了45000,并且发现在给定的时期内提供了合理的衰减率。