【发布时间】:2018-08-23 16:35:48
【问题描述】:
我正在尝试计算长双精度向量的方差。我已经尝试实现我见过的其他代码,但它没有返回正确的值。
long double variance = 0;
for (int x = 0; x < (v.size() - 1); x++) {
variance += (v.at(x) - mean) * (v.at(x) - mean);
}
variance /= v.size();
例如,如果我的向量是 {1,2,3,4,5},上面的代码给我 2.25。据我了解,正确答案是 2。
感谢任何帮助,我不确定我缺少什么。
【问题讨论】:
-
尽量不要使用显式的for循环,尽量使用像transform这样的STL算法。您的问题的确切解决方案stackoverflow.com/a/12405793/171755