Ось ще одна відповідь, що пропонує коментар до того, як відповіді Муїса , Абдулла Аль-Агееля та Фліпа - це математично одне і те ж, крім написаного по-іншому.
Звичайно, у нас є аналіз Хосе Мануеля Рамоса , який пояснює, як помилки округлення впливають на кожну дещо по-різному, але це залежить від реалізації та зміниться залежно від того, як кожна відповідь була застосована до коду.
Однак є досить велика різниця
Це в MUIS 's N
, Фліп ' s k
, і Абдулла аль-Ageel «s n
. Абдулла аль-Ageel не цілком пояснює те , що n
повинно бути, але N
і k
відрізняються тим , що N
це « число вибірок , де ви хочете , щоб в середньому за » , а k
є підрахунок значень вибірки. (Хоча я сумніваюся, чи точно називати N
кількість зразків .)
І ось ми приходимо до відповіді нижче. Це по суті такий же старий експоненціально зважений середній середній середній, як і інші, тому якщо ви шукали альтернативу, зупиніться тут.
Експоненціальна зважена середня середня величина
Спочатку:
average = 0
counter = 0
Для кожного значення:
counter += 1
average = average + (value - average) / min(counter, FACTOR)
Різниця - min(counter, FACTOR)
частина. Це те саме, що говорити min(Flip's k, Muis's N)
.
FACTOR
- це константа, яка впливає на те, як швидко середній «підтягується» до останньої тенденції. Чим менше число, тим швидше. ( 1
Це вже не середнє значення і просто стає останнім значенням.)
Ця відповідь вимагає запущеного лічильника counter
. Якщо проблематично, min(counter, FACTOR)
можна замінити справедливим FACTOR
, перетворивши його на відповідь Муїса . Проблема в цьому - ковзаюча середня величина, на яку впливає те, що average
було ініціалізовано. Якщо вона була ініціалізована на 0
, цей нуль може зайняти багато часу, щоб вийти з середнього рівня.
Як це в підсумку виглядає