За умови введення цілого числа n та списку натуральних чисел m 1 , m 2 , ..., виведіть список цілих чисел m 1 ' , m 2 ' , ... де m x ' визначається як середнє значення m xn через m x + n .
Підраховуючи ці середні показники, ігноруйте індекси, які не виходять за межі (і відповідно регулюйте те, на що ви ділите суму, відповідно). n завжди буде ≥ 1, але ніколи половина довжини m (округлена вниз) або більше. Це означає, що мінімальна довжина m дорівнює 4. Елементи в m будуть цілими натуральними числами, але вихід повинен бути точним як мінімум до 3 знаків після коми.
Елементи введення / виводу, що є списками, можуть бути або рядками, розділеними пробілами / комами, або масивами / списками тощо. Для введення даних, якщо ваше рішення є функцією, ви можете додатково взяти перший аргумент n та додаткові аргументи як m x (це стосується і аргументів командного рядка).
Ось наочне зображення 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
Оскільки це код-гольф , виграє найкоротший код у байтах.
Тестові випадки ( це робилося вручну; повідомляйте мене про будь-які помилки ):
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)Це не те, що avg(1,2). Для "крайових випадків" (га) не слід усереднювати стільки елементів списку вводу.
m_iпозитивні.