PHP 编程 / 开发思想 · 2012/09/28 0

基于用户投票的排名算法的PHP实现之 Hacker News 篇

本文算法参考: 基于用户投票的排名算法(一):Delicious和Hacker News 实现

Hacker News 是国外一个著名网络社区,可以张贴链接,或者讨论某个主题
该社区post的排名算法, 有着良好的时效性表现, 能将一段时期内热门的post根据投票的结果打分,来判定热度, 详细请看代码:

<?php
//将排名下拉的重力因子
//该因子决定了post 的下降速度, 值越高排名下降越快, 时效性的参数之一
define('RANK_G', 1.8);
//获得的投票
$vote = 100;
//数据创建时间
//$created = strtotime('-1 days');
//$created = strtotime('-1 hours');
$created = strtotime('-3 days');
//距离创建时间的小时数, 时效性的参数之二
$hourDiffCreated = (time() - $created) / 3600;
//详细算法
$socre = ($vote - 1) / pow(($hourDiffCreated + 2), RANK_G);
echo $socre, "\n";