Uwaga: Jest to numer 3 w serii wyzwań dotyczących manipulacji tablicami . Aby zobaczyć poprzednie wyzwanie, kliknij tutaj .
Średnia ruchoma listy
Średnia krocząca z listy jest obliczenie wyniku nowego, wygładzonej z listy, stworzonej przez uśrednienie małych listy zagnieżdżone nakładających oryginału.
Podczas tworzenia średniej ruchomej najpierw generujemy listę nakładających się podlist na podstawie pewnego „rozmiaru okna”, przesuwając to okno za każdym razem w prawo.
Na przykład, biorąc pod uwagę listę [8, 4, 6, 2, 2, 4]
i rozmiar okna 3
, listy podrzędne to:
[8, 4, 6, 2, 2, 4] Sublists:
( ) <- [8, 4, 6]
( ) <- [4, 6, 2]
( ) <- [6, 2, 2]
( ) <- [2, 2, 4]
Następnie obliczamy średnią średnią każdej podlisty, aby uzyskać wynik: [6.0, 4.0, 3.3, 2.7]
(każda wartość zaokrąglona do jednego miejsca po przecinku).
Wyzwanie
Twoim zadaniem jest napisanie programu lub funkcji, która, biorąc pod uwagę listę L i liczbę całkowitą 1 ≤ n ≤ długość (L) , oblicza średnią ruchomą dla L, używając rozmiaru okna n .
Zasady:
- Twój program może używać podziału na liczby całkowite lub zmiennoprzecinkowe. W przypadku podziału zmiennoprzecinkowego dopuszczalne są małe niedokładności wynikające z ograniczeń typu danych, o ile wartość jest prawidłowa.
- Możesz przesłać pełny program lub funkcję (ale nie fragment kodu).
- Możesz założyć, że lista będzie zawierać tylko dodatnie liczby całkowite .
- Standardowe luki są zabronione.
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź (w bajtach)!
Przypadki testowe
Zauważ, że dla ułatwienia odczytu wszystkie wartości są zaokrąglane do jednego miejsca po przecinku.
n=5, [1, 2, 3, 4, 5, 6, 7, 8] -> [3, 4, 5, 6]
n=3, [100, 502, 350, 223, 195] -> [317.3, 358.3, 256]
n=1, [10, 10, 10] -> [10, 10, 10]
n=3, [10, 20, 30] -> [20]
n=2, [90, 40, 45, 100, 101] -> [65, 42.5, 72.5, 100.5]