類似基于投票的熱門計數(shù)算法普遍應(yīng)用在熱門文章,熱門評論等場景中,
典型的比如網(wǎng)易和今日頭條的評論區(qū),國外比如Hacker News和Reddit的主題排序。
一.Hacker News的排序算法
Hacker News是一個主題社區(qū),用戶可以為主題投票,根據(jù)得票數(shù),系統(tǒng)自動統(tǒng)計出熱門文章排行榜。
同時主題發(fā)表時間也會對排名產(chǎn)生影響,新發(fā)表的主題比舊的主題更容易得到好的排名。
Hacker News的排名算法是這樣實現(xiàn)的:
(p – 1) / (t + 2)^G
其中,
P表示帖子的得票數(shù),減去1是為了忽略發(fā)帖人的投票。
T表示距離發(fā)帖的時間(單位為小時),加上2是為了防止最新的帖子導致分母過?。ㄖ赃x擇2,可能是因為從原始文章出現(xiàn)在其他網(wǎng)站,到轉(zhuǎn)貼至Hacker News,平均需要兩個小時)。
G表示"重力因子"(gravityth power),即將帖子排名往下拉的力量,默認值為1.8。
從這個公式來看,決定帖子排名有三個因素:
第一個因素是得票數(shù)P。
在其他條件不變的情況下,得票越多,排名越高。
第二個因素是距離發(fā)帖的時間T。
在其他條件不變的情況下,越是新發(fā)表的帖子,排名越高。或者說,一個帖子的排名,會隨著時間不斷下降。
第三個因素是因子G。
它的數(shù)值大小決定了排名隨時間下降的速度。
G值越大,排名下降得越快,意味著排行榜的更新速度越快。
二.Reddit的排序算法
Reddit 是Digg類型網(wǎng)站,國內(nèi)類似的社區(qū)有花瓣網(wǎng)等。
和Hacker News不同,和Reddit允許用戶投反對票,
算法如下圖:
1.文章提交時間對排名的影響
文章提交時間對排名的影響可以總結(jié)為以下幾點:
提交時間對排名影響巨大,越新的文章排名會越高
文