Dada una entrada de un entero n y una lista de enteros positivos m 1 , m 2 , ..., genera una lista de enteros m 1 ' , m 2 ' , ... donde m x ' se define como el promedio de m xn a través de m x + n .
Al calcular estos promedios, ignore los índices que están fuera de los límites (y ajuste lo que está dividiendo la suma por consiguiente). n siempre será ≥ 1 pero nunca la mitad de la longitud de m (redondeado hacia abajo) o más. Esto significa que la longitud mínima de m es 4. Los elementos en m serán enteros positivos, pero la salida debe tener una precisión de al menos 3 decimales.
Los elementos de entrada / salida que son listas pueden ser cadenas separadas por espacios en blanco / comas o matrices / listas / etc. Para la entrada, si su solución es una función, también puede tomar un primer argumento de n y argumentos adicionales como m x (esto también se aplica a los argumentos de la línea de comandos).
Aquí hay una representación visual de n=1
:
1 4 5 7 10
__/ | | |
L avg(1,4) = 2.5
| | |
\___/ | |
L avg(1,4,5) = 3.333
| |
\___/ |
L avg(4,5,7) = 5.333
|
\___/
L avg(5,7,10) = 7.333
\___
L avg(7,10) = 8.5
Final output: 2.5 3.333 5.333 7.333 8.5
Como se trata de código golf , gana el código más corto en bytes.
Casos de prueba ( estos se realizaron manualmente; notifíqueme cualquier error ):
In Out
----------------------------------------------------------------------
n=1, m=12 6 3 9 9 7 6 6
n=1, m=1 4 5 7 10 2.5 3.333 5.333 7.333 8.5
n=1, m=1 3 3 7 4 2 4 2 2 2.333 4.333 4.666 4.333 3.333 2.666 3
n=2, m=1 3 5 9 10 14 15 16 23 3 4.5 5.6 8.2 10.6 12.8 15.6 17 18
n=3, m=1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
n=3, m=1 2 3 4 5 6 7 8 2.5 3 3.5 4 5 5.5 6 6.5
avg(0,1,2)
no es lo mismo que avg(1,2)
. Para los "casos límite" (ha), no debe promediar tantos elementos de la lista de entrada.
m_i
son positivos.