-1

我的班级作业是这样的:编写一个名为 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;

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

多谢你们!

4

1 回答 1

0

你不能用你定义的变量来做到这一点。您需要保留原始数据才能计算公式

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

所以,

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

(2) getCount = 列表长度

(3) getAverage = 列表中值的总和 / 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);
于 2013-10-26T23:13:16.473 回答