计算分配中的标准偏差



我有一个班级作业,内容如下:编写一个名为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;

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

谢谢大家!

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

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);

最新更新