获取长双精度向量的方差
Getting the variance of a vector of long doubles
我正在尝试计算长双精度向量的方差。我已经尝试实施我见过的其他代码,但它没有 return 正确的值。
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.
感谢任何帮助,我不确定我遗漏了什么。
x < (v.size() - 1)
?这将跳过最后一个元素。使用 <=
或省略 - 1
.
元素的索引为 v.size() - 1
,由于 x
必须小于该索引,因此在处理最后一个元素之前循环中断。
我正在尝试计算长双精度向量的方差。我已经尝试实施我见过的其他代码,但它没有 return 正确的值。
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.
感谢任何帮助,我不确定我遗漏了什么。
x < (v.size() - 1)
?这将跳过最后一个元素。使用 <=
或省略 - 1
.
元素的索引为 v.size() - 1
,由于 x
必须小于该索引,因此在处理最后一个元素之前循环中断。