实施威尔逊分数区间;

时间:2014-08-09 10:09:35

标签: c#

我试图实施威尔逊得分间隔,如下所示: 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);
        }

1 个答案:

答案 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;

我没有测试它,但这应该让你走上正轨。检查括号