给定一个整数n的输入和一个正整数m 1, m 2,...的列表,输出一个整数列表m 1 ', m 2 ',...,其中m x '被定义为m的平均值 xn到m x + n。
计算这些平均值时,请忽略超出范围的索引(并相应地调整要除以的总和)。n总是≥1,但绝不能是m(舍入)的长度的一半或更多。这意味着最小长度米为4中的元素米将是正整数,但输出必须精确到至少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)
。对于“边缘情况”(ha),您不应平均输入列表中的多个元素。
m_i
正数的限制,这将是一个更好的挑战。