<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

    主站蜘蛛池模板: 97久久国产亚洲精品超碰热| 亚洲国产精品激情在线观看| 亚洲伊人成无码综合网 | 亚洲一区二区无码偷拍| 亚洲精品视频在线观看你懂的| 国产精品四虎在线观看免费| 免费无码作爱视频| a视频在线免费观看| 亚洲精品无码成人片久久不卡| 亚洲色大情网站www| 亚洲第一成年免费网站| 色偷偷尼玛图亚洲综合| 久久精品国产亚洲av麻豆色欲| 亚洲一级片内射网站在线观看| 亚洲伊人久久成综合人影院| 亚洲精品美女久久777777| 国产99视频免费精品是看6| 亚洲一区二区免费视频| 日韩不卡免费视频| 午夜老司机免费视频| 国产精品免费视频一区| www.91亚洲| 成年女人午夜毛片免费看| 日韩免费无砖专区2020狼| 免费a级毛片大学生免费观看 | 无忧传媒视频免费观看入口| 四虎成人精品国产永久免费无码| 亚洲综合欧美色五月俺也去| 亚洲av永久中文无码精品综合| 暖暖免费中文在线日本| 中文字幕乱码一区二区免费| 97在线视频免费公开观看| 暖暖日本免费中文字幕| jizz免费观看| 久久久久免费看黄a级试看| 三级网站在线免费观看| 99久久免费精品视频| 免费无遮挡无码视频网站| 久久激情亚洲精品无码?V| 免费v片视频在线观看视频| 亚洲中文字幕不卡无码|