Расчет стандартного отклонения в назначении

У меня есть задание для моего класса, которое выглядит так: Напишите класс с именем Stats. Конструктор не будет вводить. Будет метод addData(double a), который будет использоваться для добавления значения из тестовой программы. Методы getCount(), getAverage() и getStandardDeviation() будут возвращать соответствующие значения в виде значений типа double.

Вот что у меня так далеко:

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;

Моя проблема состоит в том, чтобы выяснить, как рассчитать стандартное отклонение, используя переменные, которые я определил.

Спасибо, парни!

1 ответ

Вы не можете сделать это с переменными, которые вы определили. Вам нужно сохранить исходные данные, чтобы можно было рассчитать формулу

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);
Другие вопросы по тегам