Расчет стандартного отклонения в назначении
У меня есть задание для моего класса, которое выглядит так: Напишите класс с именем 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);