Not: Bu, dizi manipülasyon zorluklarında bir numaradır. Önceki zorluk için burayı tıklayın .
Listenin Ortalamasını Taşıma
Hareketli ortalama bir listenin orijinal küçük üst üste gelen sublists ortalama tarafından oluşturulan yeni, düzeltti listesi ile sonuçlanan bir hesaplamadır.
Hareketli bir ortalama oluştururken, öncelikle belirli bir 'pencere boyutu' kullanarak çakışan alt listelerin listesini oluştururuz ve bu pencereyi her seferinde bir kez sağa kaydırırız.
Örneğin, liste [8, 4, 6, 2, 2, 4]
ve pencere boyutu göz önüne alındığında, alt listeler 3
şöyle olur:
[8, 4, 6, 2, 2, 4] Sublists:
( ) <- [8, 4, 6]
( ) <- [4, 6, 2]
( ) <- [6, 2, 2]
( ) <- [2, 2, 4]
Daha sonra sonucu elde etmek için her alt listenin ortalama ortalamasını hesaplıyoruz : [6.0, 4.0, 3.3, 2.7]
(her değer bir ondalık basamağa yuvarlanır).
Meydan okuma
Görev, bir program ya da bir listesi verilen fonksiyon yazmak için L ve bir tamsayıyı 1 ≤ n ≤ uzunluğunun (L) için, hareketli ortalama hesaplamak L pencere boyutu kullanılarak , n .
Kurallar:
- Programınız tamsayı bölümü veya kayan bölüm kullanabilir. Şamandıra bölünmesi durumunda, değer doğru olduğu sürece veri türünün sınırlamaları nedeniyle küçük yanlışlıklara izin verilir.
- Tam bir program veya bir işlev gönderebilirsiniz (ancak snippet gönderemezsiniz).
- Listenin yalnızca pozitif tamsayılar içereceğini varsayabilirsiniz .
- Standart boşluklar yasaktır.
- Bu kod golf , bu yüzden en kısa cevap (bayt cinsinden) kazanır!
Test Durumları
Okunabilirliği kolaylaştırmak için tüm değerlerin bir ondalık basamağa yuvarlandığını unutmayın.
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]