Dato un input di un numero intero n e un elenco di numeri interi positivi m 1 , m 2 , ..., genera un elenco di numeri interi m 1 ' , m 2 ' , ... dove m x ' è definita come la media di m xn attraverso m x + n .
Quando si calcolano queste medie, ignorare gli indici che sono fuori dai limiti (e regolare di conseguenza la divisione della somma). n sarà sempre ≥ 1 ma mai la metà della lunghezza di m (arrotondato per difetto) o più. Ciò significa che la lunghezza minima di m è 4. Gli elementi in m saranno numeri interi positivi, ma l'output deve essere accurato con almeno 3 cifre decimali.
Gli elementi di input / output che sono liste possono essere stringhe separate da spazi bianchi / virgola o matrici / liste / ecc. Per input, se la tua soluzione è una funzione, puoi anche prendere un primo argomento di n e argomenti aggiuntivi come m x (questo vale anche per gli argomenti della riga di comando).
Ecco una rappresentazione visiva di 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
Dato che si tratta di code-golf , vince il codice più breve in byte.
Casi di test ( questi sono stati fatti manualmente; per favore avvisami di eventuali errori ):
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)
non è la stessa avg(1,2)
. Per i "casi limite" (ha), non dovresti fare la media di molti elementi dell'elenco di input.
m_i
sono positivi.