Digamos que tengo una lista de valores de precipitación por hora, cada uno de los cuales muestra la cantidad de lluvia ocurrida en las 24 horas anteriores, ordenada por fecha. Por ejemplo:
{
'2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59
'2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 10:59
'2012-05-24 10:00': 0.6, // .6" of rain from 5/23 10:00 - 5/24 09:59
...
'2012-05-23 10:00': 0
}
¿Existe una estrategia / algoritmo para determinar cuánta lluvia cayó en cada una de las horas? Parece que no puedo entender esto. Sé que no es tan sencillo como simplemente sumar las diferencias.
Visualización de conjunto de datos
P(N) [.....======================]
P(N-1) [....======================.]
P(N-2) [...======================..]
P(N-3) [..======================...]
I want [..........................=]
Muchas gracias por cualquier ayuda.
algorithms
functional-programming
functions
Mike Griffith
fuente
fuente
P(N-x)
adición, por lo que al final la cantidad de ecuaciones e incógnitas se vuelven a salir.Respuestas:
Suponiendo que el conjunto de datos siempre consta de ventanas consecutivas de 24 horas (es decir, el primer punto de datos no es una ventana de 1 hora) ...
Este no es un problema solucionable, al menos en el caso general, porque existe un contraejemplo en el que al menos dos patrones de lluvia se asignan a un conjunto de datos.
En ambos casos, eres
P(N) = 24"
para todosN
.Como no hay un solo escenario que pueda derivarse de este conjunto de datos, el problema no se puede resolver en el sentido genérico.
Como comentario aparte, también podemos demostrar que no es necesariamente cierto que el problema siempre sea irresoluble. Lo más simple, si es que
P(N) = 0"
para todosN
, solo hay un posible patrón de lluvia para explicarlo: cero pulgadas de lluvia por hora.Por lo tanto, es el problema más interesante identificar qué características del conjunto de datos hacen que el problema sea solucionable. Trivialmente, si tiene un conjunto de datos con al menos uno de
N
esosP(N) = 0"
, entonces tiene una solución.No me sorprendería si hubiera otras propiedades que pudieran resolver el problema para un conjunto de datos dado. Encontrarlos debería ser un desafío divertido. Al mismo tiempo, probar que ninguno puede existir es igualmente entretenido.
fuente
necesita iterar a través de los datos hasta encontrar un período de precipitación 0 y luego calcular hacia adelante desde ese punto como describe SnOrus. Si ningún punto de datos es 0, entonces no creo que esto pueda resolverse a menos que defina que la entrada más temprana sea 1 hora después del comienzo del tiempo, por lo que los puntos anteriores no están definidos.
También sería posible calcular hacia atrás en el tiempo a partir de una lectura de 0, haciendo lo mismo a la inversa (aunque obtendrá al menos 24 0s seguidos.
fuente
... debería darle la cantidad de lluvia en la hora anterior a
P(n)
.fuente
Esta no es una respuesta completa, estoy en el trabajo y ya he dedicado mucho tiempo a ello ... además, necesitaría más datos para ver si mi presentimiento es correcto.
Llamemos a P (x) la medida de 24 horas en el tiempo x.
Considere el siguiente escenario de superposición:
P (X) - P (X-1) + H25 = H1.
Por lo tanto, necesita calcular H25. Creo que la solución va a descansar en algún lugar de un sistema creado a partir de P (X), P (X-1) y P (X-24).
fuente
Durante dos horas consecutivas n (ahora) y n-1 (la hora anterior), tiene la suma de precipitación (T) de veinticuatro horas compuesta de números de precipitación por hora (P) de 24 horas:
Entonces:
(Los términos P (n-1) ... P (n-23) se duplican tanto en T (n) como en T (n-1), por lo que restarlos da 0.) Al reorganizar, obtienes:
Ahora, no puedes descubrir qué es P (n) a menos que sepas qué es P (n-24). Puede retroceder más en los datos para calcular P (n-24), pero para obtener eso necesita P (n-25) y así sucesivamente hasta el infinito. Lo que necesita, entonces, es el valor de precipitación para cualquier hora que haya pasado más de 24 horas. Si tiene eso, puede calcular la precipitación por hora para todas las horas posteriores.
fuente