He estado recorriendo este sitio por un tiempo, pero recientemente me interesé realmente en probar algunos de los desafíos. Tenía la intención de probar suerte en algunos de los temas de código de golf existentes, pero ayer no tuve acceso a Internet por un tiempo, y mientras tanto, pensé en mi propio desafío.
Su tarea es crear un programa o función que tome una matriz de Flotadores ay un número entero n, luego establezca cada valor en ael promedio de los dos al lado, nveces. Cuando se usa repetidamente con valores crecientes de n, esto genera un movimiento ondulatorio:

Detalles específicos:
- Si resulta que solo hay un elemento
a, o sines 0 o menos, el programa debe devolver la matriz original. - Las entradas y salidas pueden estar en cualquier formato que desee, siempre que estén visiblemente separadas.
Para cada paso:
- El primer elemento
adebe convertirse en el promedio de sí mismo y el siguiente elemento. - El último elemento en
adebería convertirse en el promedio de sí mismo y el elemento anterior. - Cualquier otro elemento en
adebería convertirse en el promedio del elemento anterior y el siguiente elemento. - ¡Asegúrate de calcular la matriz del paso anterior y no la actual!
Casos de prueba: NOTA: ¡Sus entradas / salidas no tienen que estar en este formato!
[0, 0, 1, 0, 0], 1 -> [0, 0.5, 0, 0.5, 0]
[0, 0, 1, 0, 0], 2 -> [0.25, 0, 0.5, 0, 0.25]
[0, 0, 1, 0, 0], 0 -> [0, 0, 1, 0, 0]
[0, 0, 1, 0, 0], -39 -> [0, 0, 1, 0, 0]
[0, 16, 32, 16, 0], 1 -> [8, 16, 16, 16, 8]
[0, 1, 2, 3, 4, 5], 1 -> [0.5, 1, 2, 3, 4, 4.5]
[0, 64], 1 -> [32, 32]
[0], 482 -> [0]
[32, 32, 32, 16, 64, 16, 32, 32, 32], 4 -> [33, 27, 40, 22, 44, 22, 40, 27, 33]
Este es el código de golf , por lo que la respuesta más corta en bytes gana. El ganador será elegido en una semana (el 1 de agosto). ¡Buena suerte!
Editar: ¡ Felicidades al ganador, @issacg , con la friolera de 18 bytes!
ndebería ser 4, no 5.
nno suministrados yano suministrados; realmente no agregan mucho.