Berikut lagi jawabannya korban komentar tentang bagaimana Muis , Abdullah Al-Ageel dan flip jawaban 's adalah semua matematis hal yang sama kecuali ditulis berbeda.
Tentu, kami memiliki analisis José Manuel Ramos yang menjelaskan bagaimana kesalahan pembulatan memengaruhi masing-masing sedikit berbeda, tetapi itu bergantung pada penerapan dan akan berubah berdasarkan bagaimana setiap jawaban diterapkan ke kode.
Namun ada perbedaan yang cukup besar
Ada di Muis 's N
, Flip 's k
, dan Abdullah Al-Ageel 's n
. Abdullah Al-Ageel tidak cukup menjelaskan apa yang n
seharusnya, tetapi N
dan k
perbedaannya N
adalah " jumlah sampel di mana Anda ingin rata-rata lebih " sedangkan k
jumlah nilai sampel. (Meskipun saya ragu apakah memanggil N
jumlah sampel itu akurat.)
Dan inilah jawabannya di bawah ini. Ini pada dasarnya adalah rata-rata bergerak tertimbang eksponensial lama yang sama dengan yang lain, jadi jika Anda mencari alternatif, berhentilah di sini.
Rata-rata bergerak tertimbang eksponensial
Mulanya:
average = 0
counter = 0
Untuk setiap nilai:
counter += 1
average = average + (value - average) / min(counter, FACTOR)
Perbedaannya adalah min(counter, FACTOR)
bagiannya. Ini sama dengan mengatakanmin(Flip's k, Muis's N)
.
FACTOR
adalah konstanta yang memengaruhi seberapa cepat rata-rata "mengejar" tren terbaru. Semakin kecil angkanya semakin cepat. ( 1
Ini bukan lagi rata-rata dan hanya menjadi nilai terbaru.)
Jawaban ini membutuhkan penghitung berjalan counter
. Jika bermasalah, min(counter, FACTOR)
bisa diganti dengan just FACTOR
, mengubahnya menjadi jawaban Muis . Masalah dengan melakukan ini adalah rata-rata bergerak dipengaruhi oleh apa pun average
yang dimulai. Jika itu diinisialisasi ke0
, nol itu bisa memakan waktu lama untuk bekerja di luar rata-rata.
Bagaimana hasilnya nanti