C++의 vector에 저장된 값으로 부터 표준편차와 평균을 구하는 예제 코드입니다. 

 

 

2021. 10. 10  - 최초작성

 

#include <iostream>
#include <numeric>
#include <vector>
#include <math.h>
#include <algorithm>


using namespace std;


int main()
{
    vector<int> v = {1, 2, 3, 4, 5};

    double sum = std::accumulate(v.begin(), v.end(), 0.0);
    double mean = sum / v.size();

    std::vector<double> diff(v.size());
    std::transform(v.begin(), v.end(), diff.begin(), [mean](double x) { return x - mean; });
    double sq_sum = std::inner_product(diff.begin(), diff.end(), diff.begin(), 0.0);
    double stdev = std::sqrt(sq_sum / v.size());

    cout << "mean : " << mean << endl;
    cout << "stdev : " << stdev << endl;
}

 

실행 결과

mean : 3
stdev : 1.41421

 

출처 - https://stackoverflow.com/questions/7616511/calculate-mean-and-standard-deviation-from-a-vector-of-samples-in-c-using-boos

 

Calculate mean and standard deviation from a vector of samples in C++ using Boost

Is there a way to calculate mean and standard deviation for a vector containing samples using Boost? Or do I have to create an accumulator and feed the vector into it?

stackoverflow.com

 


블로그를 이전합니다. 여기에서 사라진 글은 https://webnautes.blog 로 옮겨진 글입니다. 블로그 이전 관계로 webnautes.tistory.com에 대한 구글 검색을 중지했습니다.


소스코드 복사시 하단에 있는 앵커 광고의 왼쪽 위를 클릭하여 닫은 후 해야 합니다.


문제가 생기면 포스트와 다르게 진행한 부분을 먼저 확인해보세요.
질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기