Как найти среднее и дисперсию одномерного массива в forms?
По дате
По рейтингу
1234567
#include <valarray>
double variance(const std::valarray<double>& nums) {
auto mean = nums.sum() / nums.size();
std::valarray<double> diff = nums - mean;
diff *= diff;
return diff.sum() / diff.size();
}
В forms ли или не в forms - не всё ли равно? А вообще как вычисляются эти величины - знаете? Пусть задан массив X длины n, тогда за два цикла:
123456789
MX = DX = 0.;
for (i = 0; i < n; ++i) MX += X[i];
MX /= n;
for (i = 0; i < n; ++i)
{
difference = X[i] - MX;
DX += difference * difference;
}
DX /= n;
Вот и всё!
Больше по теме