Получение дисперсии вектора длинных двойников

Я пытаюсь вычислить дисперсию вектора длинных двойников. Я пытался реализовать другой код, который я видел, но он не возвращает правильное значение.

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.

Любая помощь приветствуется, я не уверен, что мне не хватает.

0

Решение

x < (v.size() - 1)? Это пропускает последний элемент. использование <= или опустить - 1,

Индекс элемента v.size() - 1, и с тех пор x должно быть меньше, цикл прерывается до обработки последнего элемента.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]