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 a
e un numero intero n
, quindi imposta ciascun valore a
sulla media dei due accanto ad essa, n
volte. 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
a
dovrebbe diventare la media di se stesso e l'elemento successivo. - L'ultimo elemento in
a
dovrebbe diventare la media di se stesso e l'elemento precedente. - Qualsiasi altro oggetto in
a
dovrebbe 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!
n
dovrebbe essere 4, non 5.
n
non forniti ea
non forniti - in realtà non aggiungono molto.