Sto scorrendo questo sito da un po ', ma di recente mi sono davvero interessato a provare alcune delle sfide. Avevo intenzione di cimentarmi in alcuni degli argomenti di code-golf esistenti, ma ieri non ho avuto accesso a Internet e, nel frattempo, ho pensato alla mia sfida.
Il tuo compito è quello di creare un programma o una funzione che accetta una matrice di float ae un numero intero n, quindi imposta ciascun valore asulla media dei due accanto ad essa, nvolte. Se usato ripetutamente con valori crescenti di n, questo genera un moto ondoso:

specifiche:
- Se è presente solo un elemento in
a, o senè 0 o meno, il programma dovrebbe restituire l'array originale. - Gli ingressi e le uscite possono essere in qualsiasi formato desiderato, purché siano visibilmente separati.
Per ogni passaggio:
- Il primo elemento in
adovrebbe diventare la media di se stesso e l'elemento successivo. - L'ultimo elemento in
adovrebbe diventare la media di se stesso e l'elemento precedente. - Qualsiasi altro oggetto in
adovrebbe diventare la media dell'articolo precedente e dell'articolo successivo. - Assicurati di calcolare l'array del passaggio precedente e non quello corrente!
Casi di prova: NOTA: I tuoi ingressi / uscite non devono essere in questo 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]
Questo è code-golf , quindi vince la risposta più breve in byte. Il vincitore verrà scelto tra una settimana (il 1 agosto). In bocca al lupo!
Modifica: Congratulazioni al vincitore, @issacg , con ben 18 byte!
ndovrebbe essere 4, non 5.
nnon forniti eanon forniti - in realtà non aggiungono molto.