方差
测试数据来自 Touhou/1008
题目背景
伟大的 \(\text{Xzy}\) 老师在收拾旧数学书,然而他发现了什么奇妙的东西。
题目描述
大佬 \(\text{Xzy}\) 老师在一本数学书里面发现了一个神奇的数列,包含 \(N\) 个实数。他想算算这个数列的平均数和方差。
输入格式
第一行包含两个正整数 \(N,M\),分别表示数列中实数的个数和操作的个数。
第二行包含 \(N\) 个实数,其中第 \(i\) 个实数表示数列的第 \(i\) 项。
接下来 \(M\) 行,每行为一条操作,格式为以下三种之一:
操作 \(1\):1 x y k
,表示将第 \(x\) 到第 \(y\) 项每项加上 \(k\),\(k\) 为一实数。
操作 \(2\):2 x y
,表示求出第 \(x\) 到第 \(y\) 项这一子数列的平均数。
操作 \(3\):3 x y
,表示求出第 \(x\) 到第 \(y\) 项这一子数列的方差。
输出格式
输出包含若干行,每行为一个实数,即依次为每一次操作 \(2\) 或操作 \(3\) 所得的结果(所有结果四舍五入保留 \(4\) 位小数)。
样例 #1
样例输入 #1
5 5
1 5 4 2 3
2 1 4
3 1 5
1 1 1 1
1 2 2 -1
3 1 5
样例输出 #1
3.0000
2.0000
0.8000
提示
关于方差:对于一个有 \(n\) 项的数列 \(A\),其方差 \(s^2\) 定义如下:
\[s^2=\frac{1}{n}\sum\limits_{i=1}^n\left(A_i-\overline A\right)^2\]
其中 \(\overline A\) 表示数列 \(A\) 的平均数,\(A_i\) 表示数列 \(A\) 的第 \(i\) 项。
样例说明
操作步骤 | 输入内容 | 操作要求 | 数列 | 输出结果 | 说明 |
---|---|---|---|---|---|
\(0\) | - | - | 1 5 4 2 3 |
- | - |
\(1\) | 2 1 4 |
求 \(\left[1,4\right]\) 内所有数字的平均数 | 1 5 4 2 3 |
3.0000 |
平均数 \(=\left(1+5+4+2\right)\div 4=3.0000\) |
\(2\) | 3 1 5 |
求 \(\left[1,5\right]\) 内所有数字的方差 | 1 5 4 2 3 |
2.0000 |
平均数 \(=\left(1+5+4+2+3\right)\div 5=3\),方差 \(=\left(\left(1-3\right)^2+\left(5-3\right)^2+\left(4-3\right)^2+\left(2-3\right)^2+\left(3-3\right)^2\right)\div 5=2.0000\) |
\(3\) | 1 1 1 1 |
将 \(\left[1,1\right]\) 内所有数字加 \(1\) | 2 5 4 2 3 |
- | - |
\(4\) | 1 2 2 -1 |
将 \(\left[2,2\right]\) 内所有数字加 \(-1\) | 2 4 4 2 3 |
- | - |
\(5\) | 3 1 5 |
求 \(\left[1,5\right]\) 内所有数字的方差 | 2 4 4 2 3 |
0.8000 |
平均数 \(=\left(2+4+4+2+3\right)\div 5=3\),方差 \(=\left(\left(2-3\right)^2+\left(4-3\right)^2+\left(4-3\right)^2+\left(2-3\right)^2+\left(3-3\right)^2\right)\div 5=0.8000\) |
数据规模
数据点 | \(N\) | \(M\) | 备注 |
---|---|---|---|
\(1\sim3\) | \(N\le 8\) | \(M\le 15\) | - |
\(4\sim7\) | \(N\le 10^5\) | \(M\le 10^5\) | 不包含操作 \(3\) |
\(8\sim10\) | \(N\le 10^5\) | \(M\le 10^5\) | - |