【问题标题】:Getting the variance of a vector of long doubles获取长双精度向量的方差
【发布时间】: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。

感谢任何帮助,我不确定我缺少什么。

【问题讨论】:

标签: c++ variance


【解决方案1】:

x &lt; (v.size() - 1)?这会跳过最后一个元素。使用&lt;= 或省略- 1

元素的索引是v.size() - 1,由于x必须小于这个值,所以在处理最后一个元素之前循环中断。

【讨论】:

  • 哦。这是一个愚蠢的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2017-10-04
  • 2018-01-16
  • 2013-12-28
  • 1970-01-01
相关资源
最近更新 更多