C++ - Vector 计算 均值(mean) 和 方差(variance)
时间: 2024-02-07 14:02:09 浏览: 201
求均值和方差
计算均值和方差可以使用 C++ 的标准库中的 `std::vector` 和 `std::accumulate` 函数以及一些基本数学函数。
以下是计算向量均值和方差的代码示例:
```c++
#include <iostream>
#include <vector>
#include <numeric> // for accumulate
#include <cmath> // for sqrt
double mean(const std::vector<double>& v)
{
const double sum = std::accumulate(v.begin(), v.end(), 0.0);
return sum / v.size();
}
double variance(const std::vector<double>& v)
{
const double m = mean(v);
double var = 0.0;
for (const auto& x : v)
{
var += (x - m) * (x - m);
}
return var / v.size();
}
int main()
{
std::vector<double> v = { 1.0, 2.0, 3.0, 4.0, 5.0 };
std::cout << "Mean: " << mean(v) << std::endl;
std::cout << "Variance: " << variance(v) << std::endl;
return 0;
}
```
在上述代码中,`mean` 函数计算向量的均值,使用 `std::accumulate` 函数对向量中的元素求和,然后将和除以向量的大小。
`variance` 函数计算向量的方差,使用 `mean` 函数计算向量的均值。然后,对于每个向量元素,计算它与均值的差的平方,并将这些差的平方值相加。最后,将差的平方和除以向量大小得到方差。
注意,我们使用 `std::accumulate` 的第三个参数初始化和为 `0.0`,以确保向量元素的类型为 `double`,以避免精度误差。
阅读全文