Я пытаюсь вычислить дисперсию вектора длинных двойников. Я пытался реализовать другой код, который я видел, но он не возвращает правильное значение.
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
должно быть меньше, цикл прерывается до обработки последнего элемента.
Других решений пока нет …