Wpis z mikrobloga

@Dzakus: nie wiem w jakim języku chcesz to zrobić, ale spróbuj użyć czegoś w stylu bigintegera

pewnie można robić jakieś sztuczki w stylu średnia ważona z aktualnej średniej i najnowszego pomiaru, ale dokładność będzie tragicznie słaba po pewnym czasie
@Dzakus: Moim zdaniem wystarczyłoby podzielić to co masz na równoliczne podzbiory, takie które już nie wykrzaczą ci się przy sumowaniu i normalnie policzyć średnią. Obejdzie się bez przybliżania. Ważne tylko, żeby były równoliczne.

Np. jakbyś chciał policzyć średnią z liczb 1-10, to możesz to podzielić na równoliczne podzbiory np. 5-elementowe i policzyć to jako (1/5+2/5+3/5+4/5+5/5)/(10/5)+(6/5+7/5+8/5+9/5+10/5)/(10/5). Nie bez powodu każdą z nich dzielę przez pięć zamiast dodać je wszystkie i dopiero podzielić.
Prawidłowa odpowiedź to @lukpep:
alpha = 0.1;
avg = pomiar();

while(true) {
avg = (pomiar() * alpha) + (1-alpha) * avg;
}
Sprawdzę jeszcze w praktyce, jak to będzie działać w pulsometrze.

@SzlomoBronsztajn: wydaje mi się, że potrzeba trzymać sumę iloczynów, ale ja dostaje bardzo dużo pomiarów.

@AwizisieAkat: bigInteger jest jakimś rozwiązaniem, ale to na Arduino w C++, więc zastosowanie BigIntegera już nie jest takie proste wtedy.

@kolnay1: