Общее. Есть ли способ рассчитать среднее значение в зависимости от существующего среднего и заданных новых параметров для итогового среднего?

Скажем, мы вычисляем средние значения тестов:

Запуск тестов: 75, 80, 92, 64, 83, 99, 79

Среднее value = 572/7 = 81,714...

Теперь, учитывая 81.714, существует ли способ добавить новый набор тестов для "расширения" этого среднего, если вы не знаете начальные баллы теста?

Новые результаты тестов: 66, 89, 71

Среднее value = 226/3 = 75.333...

Нормальное среднее значение: 798/10 = 79,8

Я пробовал:

Avg = (OldAvg + sumOfNewScores) / (numOfNewScores + 1)

(81.714 + 226) / (3 + 1) = 76.9285

Avg = (OldAvg + NewAvg) / 2

(81.714 + 79.8) / 2 = 80.77

И ни один из них не подходит к точному среднему значению, которое должно "быть". Возможно ли это математически, если вы не знаете начальные значения?

Ответ 1

Вы должны знать количество тестов в исходном наборе и в среднем по старению:

newAve = ((oldAve*oldNumPoints) + x)/(oldNumPoints+1)

Ответ 2

Скажем, у вас есть 2 блока баллов:

1st: n scores with average = a1 
2nd: m scores with average = a2

тогда среднее значение общих баллов равно:

a1*(1.0*n/(m+n))+a2*(1.0*m/(m+n))

Если вы хотите просто добавить 1 балл (a2) к существующей формуле набора, будет

a1*(n/(n+1))+ a2/(n+1)

Ответ 3

Стандартным подходом является сохранение счета и суммы значений.

Они могут быть легко обновлены, и из них среднее значение может быть вычислено без потери точности.