Wyczerpałem już chyba wszystkie swoje szare komórki odnośnie tego problemu - jest on banalnie prosty, jednak mój mózg nie może tego ogarnąć - jakaś zaćma nastała
1. Mam do wyliczenia średnią SMA ( http://pl.wikipedia.org/wiki/%C5%9Arednia_krocz%C4%85ca )
2. Dane do średniej mam w wektorze Dane
3. Liczę to tak:
std::vector<double> WartoscSredniej;
int okres = 10; // Wartosc okresu średniej
double suma = 0;
double val = 0;
int Max = 0;
for(int t = 0; t < Dane.size(); t++) {
Max = t + okres;
if(Max>Dane.size()) Max = Dane.size()-1;
while(Max!=t) {
val = Dane[Max];
suma+=val;
Max--;
}
WartoscSredniej[t] = suma/okres;
suma=0;
}
Może mi ktoś powiedzieć czy:
1. to jest dobry sposób ??
2. da się to przyśpieszyć bo chodzi słabo przy dużych okresach
3. Czy wogóle dobrze liczę tą średnią ??
Z góry proszę o wyrozumiałość - ale czasami na najprostszych rzeczach można się położyć







jeżeli zwiększe okres na 5 i wyżej mam komunikat 