簡體   English   中英

獲取長雙精度向量的方差

[英]Getting the variance of a vector of long doubles

我正在嘗試計算長雙精度向量的方差。 我已經嘗試實現我所看到的其他代碼,但是它沒有返回正確的值。

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必須小於x ,因此循環在處理最后一個元素之前中斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM