计算分配中的标准偏差

时间:2013-10-26 22:54:19

标签: standards deviation

我的班级作业如下:编写一个名为Stats的班级。构造函数不会输入任何内容。将有一个方法addData(double a),它将用于从测试程序中添加一个值。方法getCount(),getAverage()和getStandardDeviation()将返回适当的值作为双精度。

这是我到目前为止所拥有的:

public class Stats
{
public Stats (double a)
{

a=0.0
}

    public void addData(double a)
    {
    while (
    sum=sum+a;
    sumsq=sumsq+Math.pow(a,2)
    count=count+1
    }

    public double getCount()
    {

    return count;
    }

    public double getAverage()
    {

    average=sum/count
    return average;
    }

    public double getStandardDeviation()
    {


private double sum=o;
private double count=0;
private double sumsq=0;

我的问题是如何使用我定义的变量来计算标准偏差。

谢谢你们!

1 个答案:

答案 0 :(得分:0)

您无法使用您定义的变量执行此操作。您需要保留原始数据才能计算公式

sigma = Math.sqrt( sum(Math.pow(x-mean, 2)) / count )

所以,

(1)创建私有数组或列表,您将在addData中添加您的值。这就是你需要在addData中做的所有事情。

(2)getCount =列表的长度

(3)getAverage = list / getCount()

中的值之和

(4)getStandardDeviation就像

double avg = getAverage();
double cnt = getCount();
double sumsq = 0;
for (int i = 0; i < values.Count(); i++) {
   sumsq += Math.pow(values[i] - avg, 2);
}
stdev = Math.sqrt(sumsq / cnt);