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