Posts List

2013년 3월 20일 수요일

Calculate the M-moving average

#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <time.h>
#include <iostream>
using namespace std;
// calculate M-moving average
vector<double> movingAverage1(const vector<double>& A, int M)
{
    vector<double> outVec;
    int n = A.size();
    for (int i=0; i<n; i++)
    {
        int sum = 0;
        int cnt = 0;
        for (int j=i; i-j < M && j >= 0; j--)
        {
            sum += A[j];
            cnt ++;
        }
        if (cnt < M)
        {
            outVec.push_back(A[i]);
        }
        else
        {
            outVec.push_back(sum / cnt);
        }
    }
    return outVec;
}
void main()
{
    srand((unsigned)time(NULL));
    vector<double> A;
    for (int i=0; i<24; i++)
    {
        A.push_back(rand());
    }
    movingAverage1(A, 3);
}

댓글 없음:

댓글 쓰기