我的班级作业如下:编写一个名为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;
我的问题是如何使用我定义的变量来计算标准偏差。
谢谢你们!
答案 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);