点击这里给我发消息 点击这里给我发消息

Hacker News 排名算法工作原理

添加时间:2013-12-19
    相关阅读: 程序 排名

找到它的源代码。深入发掘 news.arc 程序,你会找到这段排名算法代码,就是下面这段:

12

本质上,这段 Hacker News采用的排名算法的工作原理看起来大概是这个样子:

13

Score = (P-1) / (T+2)^G 其中, P = 文章获得的票数( -1 是去掉文章提交人的票) T = 从文章提交至今的时间(小时) G = 比重,news.arc里缺省值是1.8

正如你看到的,这个算法很容易实现。在下面的内容里,我们将会看到这个算法是如何工作的。

比重(G)和时间(T)对排名的影响

比重和时间在文章的排名得分上有重大的影响。正常情况下如下面所述:

当T增加时文章得分会下降,这就是说越老的文章分数会越底。当比重加大时,老的文章的得分会减的更快

为了能视觉呈现这个算法,我们可以把它绘制到Wolfram Alpha。

得分随着时间是如何变化的

你可以看到,随着时间的流逝,得分骤然下降,例如,24小时前的文章的分数变的非常低——不管它获得了如何多的票数。

Plot语句:

14

比重参数是如何影响排名的


图中你可以看到,比重越大,得分下降的越快。

Plot语句:

15

Python语言实现

之前已经说了,这个评分算法很容易实现:

16

关键是要理解算法中的各个因素对评分的影响,这样你可以在你的应用中进行定制。我希望这篇文章已经向你说明了这些

祝编程快乐!

编辑:

Paul Graham 分享了修正后的HN 排名算法:

 

17

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册