粗略的問了大神.可是卻沒發現相類似的PHP版本
所以只好花了點時間來將 Ruby 版本轉了一下
另外還將相對應的 confidence sort 也轉了過來..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <?php
date_default_timezone_set("Asia/Hong_Kong");
function calculate_rank_sum($score, $created_at) { $order = log10(max(abs($score), 1)); if ($score > 0) { $sign = 1; }elseif ($score < 0) { $sign = -1; }else{ $sign = 0; }
$seconds = intval(($created_at - mktime(0, 0, 0, 1, 1, 1970))/86400); $long_number = $order + $sign * $seconds / 45000; return round($long_number, 7); }
function confidence($ups, $downs) { if ($ups + $downs == 0) { return 0; }else{ $n = $ups + $downs; if ($n == 0) return 0; $z = 1.0; $phat = (float)$ups / $n; return sqrt($phat+$z*$z/(2*$n)-$z*(($phat*(1-$phat)+$z*$z/(4*$n))/$n))/(1+$z*$z/$n); } }
echo calculate_rank_sum(10, time()), "\n"; echo confidence(10, 0), "\n"; ?>
|
參考:
http://stackoverflow.com/questions/5365525/why-is-my-rank-sum-database-column-still-nil
http://amix.dk/blog/post/19588