Аппроксимация суммы / среднего значения последних n членов в ряду

#math

#математика

Вопрос:

Предположим, у меня есть ряд t_1, t_2, …, t_n, …, и число всегда приходит. Я хочу вычислить приблизительное значение суммы / среднего значения последних t чисел, но без сохранения этих t чисел. Единственное, что сохраняется, это предыдущая сумма / среднее значение. Какова соответствующая функция?

Например.

 s_1 = t_1
s_2 = f(t_2, s_1)
s_3 = f(t_3, s_2)
  

Возможная функция может быть похожа на s_2 = t_2 s_1 * (e ^ -1), но каково оптимальное решение?

Примечание: размер окна фиксирован. Таким образом, точного решения нет, а есть приближение, поскольку число из окна неизвестно.

Примечание 2: Спасибо за все обсуждения. Теперь я знаю ответ. Это действительно тривиально, я не думаю, что это хорошо. Я удалю этот вопрос позже. Но в любом случае, ответ таков: я должен предположить, что число из окна является средним. В этом предположении новая сумма равна

 (old average)*(t-1)   new number
  

и новое среднее значение равно

 ((old average)*(t-1) (new number))/t
  

Комментарии:

1. Можете ли вы отслеживать, сколько чисел поступило до сих пор?

2. Возможно, вопрос о домашнем задании?

3. @asimes Да, вы можете, поскольку хранилище равно O (1)

4. @Tony Сохраняйте текущую сумму и количество элементов — все, что требуется, — это два числа

5. @Ed Heal, нет, это не домашнее задание.

Ответ №1:

Прежде всего, это реально, вероятно, вопрос для Mathematics Stack Exchange

но в любом случае, поскольку вы не упоминаете язык программирования, я пойду с C # (с массивом). давайте назовем вашу серию ‘mySeries’:

 double average=0;
for (int i = 0; i < mySeries.Length; i  )
    average =mySeries[i]/(i 1);

MessageBox.Show("Here is your average dawg:"   average.ToString());