方差

题目背景

滚粗了的 HansBug 在收拾旧数学书,然而他发现了什么奇妙的东西。

题目描述

蒟蒻 HansBug 在一本数学书里面发现了一个神奇的数列,包含 $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

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$ | - |