2013-11-12 2 views
-6

Я не мог понять, почему я ошибаюсь и как могу получить std.Требования к функции std

+0

Связанный: [''] (http://en.cppreference.com/w/cpp/numeric/random). Его что для обеда. – WhozCraig

+0

Это похоже на сочетание C и C++; Я не думаю, что C имеет пространства имен или объекты или заголовки, которые не заканчиваются символом '.h'. –

+0

Это в основном C, но с некоторыми C++ (вектор , namestpace и т. Д.). – ChuckCottrill

ответ

2

Стандартное отклонение является квадратным корнем дисперсии. Прежде всего, необходимо среднее (среднее), из множества образцов X,

mean = u = sum(X[0] .. x[n-1])/n 

Дисперсия представляет собой среднее значение квадратов разностей между каждой выборки X (I) и средним значением, и,

variance = sum((x[0]-u)^2 .. (x[n-1]-u)^2)/n 

И стандартное отклонение (станд), квадратный корень из дисперсии,

std = sqrt(variance); 

Но у вас есть стандартное отклонение, рассчитанное в конце. Если вы не хотите, чтобы «бункеры» были связаны с вычислением stddev для каждого из кодов count []?

+1

вам не хватает квадратов в дисперсии. – carlosdc

+0

oops. Спасибо! – ChuckCottrill

+1

Вы можете рассчитать среднее значение и дисперсию за один проход. Просто следите за суммой (x) и суммой (x^2), затем дисперсия = (sum (x^2)/n) - (sum (x)/n)^2. – Beta

Смежные вопросы