我想在网页上实现新闻排名系统。
我需要指导:
相关信息:
方法 我想通过Mysql做一切:
有意义吗?
实施 好。我知道PHP中的代码(见下文)。 但是我如何将Wilson Score代码移植到Mysql?那有可能吗?它已经在某处完成了吗? 我已经在Mysql中创建了触发器,函数,事件和过程,但我不知道如何移植它。
谢谢!
<?php
class Rating
{
public static function ratingAverage($positive, $total, $power = '0.05')
{
if ($total == 0)
return 0;
$z = Rating::pnormaldist(1-$power/2,0,1);
$p = 1.0 * $positive / $total;
$s = ($p + $z*$z/(2*$total) - $z * sqrt(($p*(1-$p)+$z*$z/(4*$total))/$total))/(1+$z*$z/$total);
return $s;
}
public static function pnormaldist($qn)
{
$b = array(
1.570796288, 0.03706987906, -0.8364353589e-3,
-0.2250947176e-3, 0.6841218299e-5, 0.5824238515e-5,
-0.104527497e-5, 0.8360937017e-7, -0.3231081277e-8,
0.3657763036e-10, 0.6936233982e-12);
if ($qn < 0.0 || 1.0 < $qn)
return 0.0;
if ($qn == 0.5)
return 0.0;
$w1 = $qn;
if ($qn > 0.5)
$w1 = 1.0 - $w1;
$w3 = - log(4.0 * $w1 * (1.0 - $w1));
$w1 = $b[0];
for ($i = 1;$i <= 10; $i++)
$w1 += $b[$i] * pow($w3,$i);
if ($qn > 0.5)
return sqrt($w1 * $w3);
return - sqrt($w1 * $w3);
}
public static function gravityRating($positive, $total, $time, $power = '0.05')
{
if ($total == 0)
return 0;
return (Rating::ratingAverage($positive, $total, $power) / pow($time,0.5)); //para reducir el valor del tiempo solo dividir time por algo.
}
}
答案 0 :(得分:0)
我认为你的问题没有任何意义。实际上,没有时间引力这样的事情,如果你只想展示最新消息,你可以对新闻进行排序。 wilson intervall与时间无关,因此每隔30分钟计算一次wilson intervall不会改变任何事情。