rank排名算法整理
按照"过去60分钟内被收藏的次数"进行排名
优点:简单
缺点:排名变化不够平滑,缺乏自动淘汰旧项目的机制
根据得票数,系统自动统计出热门文章排行榜,并非得票最多的文章排在第一位,还要考虑时间因素,新文章应该比旧文章更容易得到好的排名。算法实现:http://pastebin.com/ZF57qQPi,
上面的代码还原为数学公式:
?
从此图中可以发现:
有三个同时发表的帖子,得票分别为200票、60票和30票(减1后为199、59和29),分别以黄色、紫色和蓝色表示。在任一个时间点上,都是黄色曲线在最上方,蓝色曲线在最下方。从此图中可以发现:
三根曲线的其他参数都一样,G的值分别为1.5、1.8和2.0。G值越大,曲线越陡峭,排名下降得越快,意味着排行榜的更新速度越快。下面是python的实现
return (votes - 1) / pow((item_hour_age+2), gravity)