从dbanotes.net的startup news知道了hacker news,关注了一段时间,发现排名确实能反映绝大多数用户的喜好,并且也不至于让比较热的文章永远出现在前列,而导致没有新的内容被关注。因此对其算法比较好奇,在网络上搜索了一下,看到实际的算法,有点不敢相信,整个系统只需要依赖这样一个简单的算法,不需要任何人工干预(也许链接是否发布出来需要审核)。hacker news的原理很简单,任何人都可以提交链接到网站首页,然后大家可以阅读其他人提交的链接,当发现该链接对自己有意义或者非常好时可以点击一个类似赞的按钮,给该文章投上一票。最终首页上会按照文章的票数多少和发布时间对文章进行热度排序。
整个算法就是基于下面这个表达式:
r=(P – 1) / (t + 2)^1.8
P是得票数,t是时间,天为单位。因此时间越短得票数越多的文章排名靠前,得票数一定,随着时间的增加,文章的排名也会慢慢降低。
已经有人画出了不同的P值对应的r与t的函数曲线图: