Oto kolejna odpowiedź zawierająca komentarz dotyczący tego , jak odpowiedź Muis , Abdullah Al-Ageel i Flip są matematycznie tym samym, z wyjątkiem tego , że są napisane inaczej.
Jasne, mamy analizę José Manuela Ramosa wyjaśniającą, jak błędy zaokrąglania wpływają na każdy z nich nieco inaczej, ale jest to zależne od implementacji i zmieni się w zależności od tego, jak każda odpowiedź została zastosowana do kodu.
Jest jednak dość duża różnica
Jest w Muis 's N, flip ' s k, a Abdullah Al-Ageel „s n. Abdullah Al-Ageel nie do końca wyjaśnić, co npowinno być, ale Ni króżnią się tym, że Njest „ liczba próbek, w których mają być średnio ponad ”, a kjest liczba wartości próbki. (Chociaż mam wątpliwości, czy podanie N liczby próbek jest dokładne.)
I tutaj dochodzimy do odpowiedzi poniżej. Zasadniczo jest to ta sama stara wykładnicza ważona średnia krocząca, co pozostałe, więc jeśli szukałeś alternatywy, zatrzymaj się tutaj.
Wykładnicza ważona średnia ruchoma
Początkowo:
average = 0
counter = 0
Dla każdej wartości:
counter += 1
average = average + (value - average) / min(counter, FACTOR)
Różnica jest min(counter, FACTOR)częścią. To to samo, co mówienie min(Flip's k, Muis's N).
FACTORto stała, która wpływa na to, jak szybko średnia „dogania” najnowszy trend. Im mniejsza liczba, tym szybciej. (W 1tym momencie nie jest już średnią i staje się najnowszą wartością).
Ta odpowiedź wymaga działającego licznika counter. Jeśli jest to problematyczne, min(counter, FACTOR)można je zastąpić just FACTOR, zamieniając je w odpowiedź Muis . Problem z robieniem tego polega na tym, że na średnią ruchomą wpływa to, co averagejest parafowane. Jeśli zostało zainicjowane 0, to zero może zająć dużo czasu, zanim wyjdzie ze średniej.
Jak to się kończy
