2013-10-26 119 views
-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; 

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

谢谢你们!

+0

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