Если у вас есть цифры a[1] a[2] ... a[n]
и вы знаете, что их среднее значение составляет avg(n) = (a[1] + ... + a[n]) / n
, то, когда вы получите другое число a[n + 1]
, вы можете сделать:
avg(n + 1) = (avg(n) * n + a[n + 1]) / (n + 1)
Некоторые ошибки с плавающей запятой неизбежны, но вы должны проверить это и посмотреть, достаточно ли это хорошо.
Чтобы избежать переполнения, сначала можно выполнить деление:
avg(n + 1) = (avg(n) / (n + 1)) * n + (a[n + 1] / (n + 1))