<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Chan Chen Coding...

    Hacker News算法

    Hacker News是一個網絡社區,可以張貼鏈接,或者討論某個主題。

    每個帖子前面有一個向上的三角形,如果你覺得這個內容很好,就點擊一下,投上一票。根據得票數,系統自動統計出熱門文章排行榜。但是,并非得票最多的文章排在第一位,還要考慮時間因素,新文章應該比舊文章更容易得到好的排名。

    Hacker News使用Paul Graham開發的Arc語言編寫,源碼可以從arclanguage.org下載。它的排名算法是這樣實現的:

    將上面的代碼還原為數學公式:

    其中,

      P表示帖子的得票數,減去1是為了忽略發帖人的投票。

      T表示距離發帖的時間(單位為小時),加上2是為了防止最新的帖子導致分母過小(之所以選擇2,可能是因為從原始文章出現在其他網站,到轉貼至Hacker News,平均需要兩個小時)。

      G表示"重力因子"(gravityth power),即將帖子排名往下拉的力量,默認值為1.8,后文會詳細討論這個值。

    從這個公式來看,決定帖子排名有三個因素:

    第一個因素是得票數P。

    在其他條件不變的情況下,得票越多,排名越高。

    上圖可以看到,有三個同時發表的帖子,得票分別為200票、60票和30票(減1后為199、59和29),分別以黃色、紫色和藍色表示。在任一個時間點上,都是黃色曲線在最上方,藍色曲線在最下方。

    如果你不想讓"高票帖子"與"低票帖子"的差距過大,可以在得票數上加一個小于1的指數,比如(P-1)^0.8。

    第二個因素是距離發帖的時間T。

    在其他條件不變的情況下,越是新發表的帖子,排名越高。或者說,一個帖子的排名,會隨著時間不斷下降。

    從前一張圖可以看到,經過24小時之后,所有帖子的得分基本上都小于1,這意味著它們都將跌到排行榜的末尾,保證了排名前列的都將是較新的內容。

    第三個因素是重力因子G。

    它的數值大小決定了排名隨時間下降的速度。

    上圖可以看到,三根曲線的其他參數都一樣,G的值分別為1.5、1.8和2.0。G值越大,曲線越陡峭,排名下降得越快,意味著排行榜的更新速度越快。

    知道了算法的構成,就可以調整參數的值,以適用你自己的應用程序。



    -----------------------------------------------------
    Silence, the way to avoid many problems;
    Smile, the way to solve many problems;

    posted on 2013-03-23 13:35 Chan Chen 閱讀(279) 評論(0)  編輯  收藏 所屬分類: Algorithm

    主站蜘蛛池模板: 亚洲另类无码一区二区三区| 亚洲精品福利网泷泽萝拉| 亚洲Av永久无码精品一区二区| 91免费国产在线观看| 337p欧洲亚洲大胆艺术| 国产免费丝袜调教视频| 久久精品国产亚洲αv忘忧草| 性短视频在线观看免费不卡流畅| 亚洲一区二区三区在线观看蜜桃 | 久久精品国产大片免费观看| 亚洲AV永久精品爱情岛论坛| 在线看片免费人成视久网| 亚洲国产成人九九综合| 麻豆成人精品国产免费| 免费视频成人国产精品网站| 伊人久久大香线蕉亚洲| 久久青草免费91观看| 亚洲av午夜精品无码专区| 欧洲美熟女乱又伦免费视频| 日韩免费高清一级毛片| 亚洲精品无码专区在线在线播放| 免费91最新地址永久入口| 亚洲剧情在线观看| 国产又大又长又粗又硬的免费视频| 人人爽人人爽人人片A免费| 国产亚洲精久久久久久无码| 亚洲高清免费在线观看| 亚洲av永久中文无码精品综合| 亚洲无码视频在线| 4399影视免费观看高清直播| 日韩欧美亚洲国产精品字幕久久久| 亚洲美日韩Av中文字幕无码久久久妻妇| 国产在线精品一区免费香蕉| 91亚洲性爱在线视频| 四虎AV永久在线精品免费观看| 中文在线观看国语高清免费| 久久久久亚洲国产| 亚洲va久久久噜噜噜久久| 成年女人毛片免费视频| 在线涩涩免费观看国产精品| 精品亚洲456在线播放|