类似基于投票的热门计数算法普遍应用在热门文章,热门评论等场景中,
典型的比如网易和今日头条的评论区,国外比如Hacker News和Reddit的主题排序。
一.Hacker News的排序算法
Hacker News是一个主题社区,用户可以为主题投票,根据得票数,系统自动统计出热门文章排行榜。
同时主题发表时间也会对排名产生影响,新发表的主题比旧的主题更容易得到好的排名。

Hacker News的排名算法是这样实现的:
(p – 1) / (t + 2)^G
其中,
P表示帖子的得票数,减去1是为了忽略发帖人的投票。
T表示距离发帖的时间(单位为小时),加上2是为了防止最新的帖子导致分母过小(之所以选择2,可能是因为从原始文章出现在其他网站,到转贴至Hacker News,平均需要两个小时)。
G表示"重力因子"(gravityth power),即将帖子排名往下拉的力量,默认值为1.8。
从这个公式来看,决定帖子排名有三个因素:
第一个因素是得票数P。
在其他条件不变的情况下,得票越多,排名越高。
第二个因素是距离发帖的时间T。
在其他条件不变的情况下,越是新发表的帖子,排名越高。或者说,一个帖子的排名,会随着时间不断下降。
第三个因素是因子G。
它的数值大小决定了排名随时间下降的速度。
G值越大,排名下降得越快,意味着排行榜的更新速度越快。
二.Reddit的排序算法
Reddit 是Digg类型网站,国内类似的社区有花瓣网等。
和Hacker News不同,和Reddit允许用户投反对票,

算法如下图:

1.文章提交时间对排名的影响
文章提交时间对排名的影响可以总结为以下几点:
提交时间对排名影响巨大,越新的文章排名会越高
文

