Las siguientes fórmulas le permiten rastrear los promedios solo a partir de la media y el recuento almacenados, según lo solicitado.
currentScore = (currentScore * currentCount + newValue)/(currentCount + 1)
currentCount = currentCount + 1
Esto se basa en el hecho de que su promedio es actualmente su suma dividida por el recuento. Entonces, simplemente multiplique el recuento por promedio para obtener la suma, agregue su nuevo valor y divida por (recuento + 1), luego aumente la cantidad.
Entonces, digamos que usted tiene los datos {7,9,11,1,12}
y lo único que mantiene es el promedio y el recuento. A medida que se añade cada número, se obtiene:
+--------+-------+----------------------+----------------------+
| Number | Count | Actual average | Calculated average |
+--------+-------+----------------------+----------------------+
| 7 | 1 | (7)/1 = 7 | (0 * 0 + 7)/1 = 7 |
| 9 | 2 | (7+9)/2 = 8 | (7 * 1 + 9)/2 = 8 |
| 11 | 3 | (7+9+11)/3 = 9 | (8 * 2 + 11)/3 = 9 |
| 1 | 4 | (7+9+11+1)/4 = 7 | (9 * 3 + 1)/4 = 7 |
| 12 | 5 | (7+9+11+1+12)/5 = 8 | (7 * 4 + 12)/5 = 8 |
+--------+-------+----------------------+----------------------+
No debería ser eso currentScore = (currentScore * currentCount + 4.5)/(currentCount + 1) –
Gracias, @John, no estaba pensando con claridad. – paxdiablo
No se preocupe, es un error fácil de hacer –