我试图实施威尔逊得分间隔,如下所示: http://www.goproblems.com/test/wilson/wilson-new.php?v1=0&v2=0&v3=0&v4=0&v5=2
PHP来源:http://www.goproblems.com/test/wilson/wilson-new.php.txt
但是,我似乎无法获得与php示例中相同的数字。
第二个2是总评分
前两个是我得到的等级为5的总和评分:
double sum = ((5 - 1) / 4.0) * Total_5_star_Ratings
2评级均为5星:
Console.WriteLine(5 * ci_lower_bound(2, 2));
public static double ci_lower_bound(double sum, int n)
{
if (n == 0)
return 0.0;
double z = 1.96;
const int k = 4;
double ave = sum/n;
return ((ave + ((z * z) / (2 * n))) - z * Math.Sqrt((k * ave * (1 - ave) + (z * z) / (4 * n)) / n)) / (1 + (k * (z * z)) / n);
}
答案 0 :(得分:0)
我发现您可能有错误,因为您没有发布您的结果。
而不是
double sum = ((5 - 1) / 4.0) * Total_5_star_Ratings
你应该了解你的情况
double ave = (5 * n)/n
然后 double xbar =(ave - 1)/ 4
和你的公式
double result = (( ave + ((z * z) / (2 * n))) - z * Math.Sqrt((((ave * (1 - ave) + (z * z) / (4 * n)) / n)) / (1 + (z * z / n)));
return result 1 + 4 * result;
我没有测试它,但这应该让你走上正轨。检查括号