2012-12-18 31 views
0

我在建設一個社交網站作爲一種業餘愛好項目和
希望通過他們的知名度
和後的普及實施後之後的排名算法,即排序應與時間衰變過程好。用戶帖子的排名算法

帖子的人氣應取決於投票數量和發佈時間。

我已經經歷了黑客的新聞,Reddit和對計算器
例如一些建議的算法,這是黑客新聞的算法,我用

Score = (P-1)/(T+2)^G 

其中P是投票數量,g是重力(因素是決定
多少,你想隨着時間衰減)

但我想只要用戶提交後,它也應該在網頁就像Facebook動態消息的頂部,那麼它應該衰減gracefull不突然,我是n不能夠實現這一點。

+0

你可以在你發佈的算法中定義P和G(P應該是流行的,但你計劃如何計算它)? – berty

+0

@ aurel.g編輯問題 – Tarun

回答

2

我認爲你發佈的公式可能是一個很好的工作基礎。更一般地說,我們可以區分四種方法:

(1) Score = (Popularity + k)/(Age^Gravity) 

(2) Score = (Popularity + k) - (Age^Gravity) 

(3) Score = (Popularity + k)/(Age * Gravity) 

(4) Score = (Popularity + k) - (Age * Gravity) 

返回到相同的整體。

k可能是有用的來認識一個帖子裏面至今還沒有一票

,你會問自己是「萬有引力」的選擇問題。在我看來,引力不應該是一個常數,特別是在案例2和案例4中。取決於帖子的總數,或者更好的是,讀取帖子並有機會投票的用戶數量會很有趣。因此,那些看不到太多的帖子不會太快地落入排名。

+0

感謝您的回答,考慮我提交一篇文章並投票的情況,然後立即提交一篇文章,在這種情況下,我的第二篇文章不會在頁面的頂部一段時間。基本上我想如果用戶發佈一些東西,那麼它應該出現在頁面頂部,就像facebook新聞提要一樣。 – Tarun