Ось ще одна відповідь, що пропонує коментар до того, як відповіді Муїса , Абдулла Аль-Агееля та Фліпа - це математично одне і те ж, крім написаного по-іншому.
Звичайно, у нас є аналіз Хосе Мануеля Рамоса , який пояснює, як помилки округлення впливають на кожну дещо по-різному, але це залежить від реалізації та зміниться залежно від того, як кожна відповідь була застосована до коду.
Однак є досить велика різниця
Це в 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, цей нуль може зайняти багато часу, щоб вийти з середнього рівня.
Як це в підсумку виглядає
