6 votos

continuamente promedio de una secuencia de números

Ok, así que me gustaría un poco de ayuda con la teoría matemática detrás de algo estoy haciendo en un programa. Tengo una secuencia de entradas numéricas, y necesito encontrar el promedio de todos los números en este flujo de datos. Me voy a la salida una vez que la secuencia de los extremos.

En mi código de mi programa puede recordar dos números, y es consciente de que el siguiente número en la secuencia.

Digamos que tengo x, y y z.

x es el promedio actual de la corriente de y es la cantidad de números que han sido procesados a partir de la corriente z es el número siguiente en la secuencia.

¿Cómo podría hacer una feria promedio ponderado de una secuencia como esta? Si acabo de añadir z a x, a y, a continuación, dividir x por 2, entonces el más reciente de los números en la secuencia fuertemente el peso de la media. O esto es incluso posible?

7voto

Shabaz Puntos 403

Su ejecución suma es $xy$, por lo que cuando un nuevo número de $z$ viene en la suma de ejecución se convierte en $xy+z$ y la cuenta llega a ser $y+1$. La nueva media es $\frac {xy+z}{y+1}$. Es más fácil para almacenar la suma de ejecución que el promedio, y la actualización de la suma y el número cada vez que un nuevo número.

Añadido: tres cosas que usted puede considerar: 1) Mantener la ejecución de sum y count. Cuando la suma de ejecución se encuentra cerca de desbordamiento, dividir por 2. Ahora empezar a acumular de nuevo. Este será el peso de los nuevos valores dos veces tanto como los antiguos, pero tal vez eso está bien. 2) Si usted sabe acerca de lo que la media es, restar una conjetura a partir de todos los datos. Usted está guardando la diferencia de su conjetura. Si su suposición es estrecha, la suma de ejecución permanecerá cerca de cero, o al menos no de desbordamiento casi tan rápidamente. 3) tal vez como sobreasignación porcentual de los nuevos datos no está tan mal. Si el promedio de los cambios con el tiempo, tal vez usted quiere los últimos datos de sobreasignación porcentual. Un enfoque es que el promedio actual almacenado en $x$, luego al $z$ viene, hacer la nueva media de $x=\frac {a*x+z}{a+1}$. El mayor $a$ es, más lento es el promedio va a cambiar. Usted es la ponderación de los nuevos datos como $\frac 1a$ de la edad media. Este debe estar a salvo de desbordamiento.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X