Top.Mail.Ru
Ответы

Как найти среднее и дисперсию одномерного массива в forms?

По дате
По рейтингу
Аватар пользователя
Высший разум
2мес
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(); 
} 
Аватар пользователя
Высший разум
2мес

В 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; 

Вот и всё!