-
실시간으로 평균 값 구할 때 좋은, 평균 필터 알고리즘.프로그래밍/기록, 개념, 용어 2021. 4. 25. 12:03반응형
실시간으로 들어오는 값들로 부터 실시간으로 평균 값을 계산할 때 유용.
이전 값들의 목록 또는 이전 값들의 총 누산 값들을 저장할 필요가 없다.#include <iostream> using namespace std; /// @params prevAvgVal 이전 평균 값. /// @params numSample 몇 번째 샘플인지. /// @params sampleVal 샘플 값. int avg(int prevAvgVal, int numSample, int sampleVal) { return (prevAvgVal * (numSample - 1) / numSample) + (sampleVal / numSample); } int main() { int prevAvgVal = 0; int sample = 4; int totalAccVal = 0; for (int numSample = 1; numSample <= sample; ++numSample) { const int sampleVal = numSample * 100; const int avgVal = avg(prevAvgVal, numSample, sampleVal); totalAccVal += sampleVal; cout << "sample: " << numSample << endl; cout << "sampleVal: " << sampleVal << endl; cout << "avgVal: " << avgVal << endl; cout << endl; prevAvgVal = avgVal; } // 일반적으로 평균 구하는 방법과 비교를 위해 찍어 봄. cout << "avgVal: " << totalAccVal / sample << endl; return 0; }
결과는 아래와 같이 나온다.
아래 링크한 글이 이해하기 쉽게 정리 됨.
실시간 데이터의 평균을 효율적으로 구하기 | Evans Library (evan-moon.github.io)
반응형'프로그래밍 > 기록, 개념, 용어' 카테고리의 다른 글
ClockSkew (0) 2022.02.07 SSL/TLS 오프로딩(Offloading) (0) 2022.02.01 코드 스멜(CODE SMELL) (0) 2020.10.29 비교문 최적화에 도움 되는 개념. 드 모르간 법칙(De Morgan's laws) (1) 2020.07.03 Idempotent Key (0) 2020.06.14