一些经典的期望问题
- 有$m$个和为$n$的非负整数,求这$m$个数的期望方差。
考虑方差的式子:
$$s^2=\frac{1}{m}\times\sum_{i=1}^{m}(X_i - \overline{X})^2 = \frac{1}{m}\times\sum_{i=1}^{m}{X_i}^2-\frac{n^2}{m^2}$$
所以我们可以把问题转化为求期望平方和。有:
$$\sum_{i=1}^{m}{X_i}^2 = \sum_{i=1}^{m}(X_i\times(X_i-1)+X_i) = n + 2\times\sum_{i=1}^{m}\binom{X_i}{2}$$
考虑$\sum_{i=1}^{m}\binom{X_i}{2}$的组合意义。问题相当于给$n$个有标号的球,和$m$个有标号的盒子,每个球能放入任意一个盒子,问有多少对球在同一个箱子内。求期望的话,考虑每一对球$(i,j)$,显然$i,j$在同一个箱子内的概率为$\frac{1}{m}$,然后有$\binom{n}{2}$对球,那么$\sum_{i=1}^{m}\binom{X_i}{2}$ 的期望就是$\frac{1}{m}\times\binom{n}{2}$。带入,得:
$$ E(s^2) = \frac{1}{m}\times E(\sum_{i=1}^{m}{X_i}^2) - \frac{n^2}{m^2} = \frac{n(n+m-1) - n^2}{m^2}=\frac{n(m-1)}{m^2}$$
至此,问题得解。
- 给一棵树,随机选择一条路径,问路径的期望边权和/最大边权/边权位运算和/......
先考虑边权和怎么做:给每个点$u$记录$Size_u$表示子树大小,那么对于点$u$到其父亲的边$e$会出现在$Size_u\times(n-Size_u)$条链中,所以其对答案的贡献就是$w_e\times\frac{Size_u\times(n-Size_u)}{\binom{n}{2}}$,累加即可。
最大边权也差不多,只不过要先给边按照边权排序,然后从小到大加边,用并查集维护当前联通块的大小。假设边$e$的两个端点为$u,v$,同时设加入边$e$时$u,v$所在联通块的大小分别为$Size_u,Size_v$,那么以这条边作为最大边权的链的数量为:$Size_u\times Size_v$,所以其对答案的贡献就是$w_e\times\frac{Size_u\times Size_v}{\binom{n}{2}}$,累加即可。
边权位运算和就有点小麻烦,这里给出本人的一个做法。可以选择用树分治来统计链的位运算和,然后把每一个位运算和的每一个二进制位分离开记贡献,此后便可算出每一个二进制位为1的概率,进而算出该位对于答案的贡献,最后累加贡献即可。复杂度是$O(n(\log W+\log n))$的。