概念
数学期望,简称期望,就是指在实验中事件发生的概率乘以该事件的价值的总和,可以反应随机变量的平均取值大小
离散型变量:若一个变量的值域为一段或几段区间,且该变量的取值是有限或无限个,但是能够按一定次序枚举列出,则称其为离散型随机变量,对应的,它的每个取值的概率 (p(i)) 与它的对应取值 (a_i) 的乘积之和,即为期望值( (E(X)) ),称为离散型随机变量的数学期望,即:(E(X)=sum_{i=1}{a_i imes p(i)})
连续型变量:在该变量的值域上,无法按照某种次序将这些变量的取值一一列出,则称其为连续型随机变量
性质
-
一个常量的期望等于它本身(显然,常量被取到的概率为 (1) )
-
和的期望等于期望的和,即 (E(X+Y)=E(X)+E(Y)) (这个性质最为常用)
-
(E(CX)=C imes E(X)) ( (C) 为一个常量,(X) 为一个事件)
-
若 (X , Y) 为两个相互独立的事件,则有 (E(XY)=E(X)E(Y))
例题
https://www.luogu.com.cn/problem/P6858
题意简述:
有一个长为 (n+m) 的 (01) 串,其中有 (n) 个 (1) 和 (m) 个 (0) ,每次可以进行一次操作,可以将一个 (0) 删除,同时将串中剩余的所有 (0) 都变为 (1) ,或者是将一个 (1) 变为 (0) ,等概率选择一个位置进行操作,要将该串全部删除,求期望操作次数
分析
首先考虑 (m=0) 的情况,那么在串中就只有 (n) 个 (1) ,进行一次操作,无论选取哪个位置,都会变为 (n-1) 个 (1) ,以及 1 个 (0) ,对于下一次操作,就有 (frac{1}{n}) 的概率选中为 (0) 的位置,将其删除,变为含有 (n-1) 个 (1) 的 (01) 串,或者是以 (frac{n-1}{n}) 选中一个为 (1) 的位置,将其变为 (0) ,但同时,该串中的另一个 (0) 就会变为 (1) ,仍然为 (n-1) 个 (1) ,(1) 个 (0) 的串,设 (g(i)) 为含有 (i) 个 (1) ,不含 (0) 的串,则期望操作数为 : (g(i) = 1 + frac{1}{i} imes g(i-1) + frac{i-1}{i} imes g(i))
经过移项整理,我们可以得到 (g(i) = i + g(i-1) + 1) ,将 (g(0)=0) 代入推导,可得 (g(i)=frac{(i+3) imes i}{2})
之后,我们考虑 (m!=0) 时,设 f(i) 为有 (n) 个 (1) , (i) 个 (0) 的串需要操作的期望数,显然,我们有 (frac{i}{n+i}) 的概率选中 (0) ,将其变为一个 (n-1) 个 (1) , (i) 个 (0) 的串 ,对该串的期望操作数即为 (f(i-1)) ,同时,我们有 (frac{n}{n+i}) 的概率选到一个 (1) ,将其变为 (0) ,同时将其余的 (i) 个 (0) 变为 (1) ,变为一个 (n+i-1) 个 (1) , (1) 个 (0) 的串,此时,该串的期望操作数就是 (g(n+i)-1)
由此,我们可以得到一般的递推式:设 (f(i)) 表示有 (n) 个 (1) , (i) 个 (0) 的串的期望操作次数,则 (f(i)=1+frac{i}{n+i} imes f(i-1) + frac{n}{n+i} imes (g(n+i)-1)) , (f(0)=g(n))
递推即可
https://www.luogu.com.cn/problem/P6154
题意简述
定义一个图中的一条路径长度为经过的边数,在图中等概率地选择一条路径(路径的起点与终点可以相同),求一个有向无环图的期望路径长度
分析
对于整个图来说,因为期望的和等于和的期望,那么设 (sum) 为所有路径长度的总和, (cnt) 为路径数量,则期望为 (E(X)=frac{sum}{cnt})
只需维护以 (i) 为起点的路径数及其路径长度总和,记忆化搜索即可
Code
ll a[maxn],b[maxn];//a[]表示以 i 为起点的路径长度总和,b[] 表示以 i 为起点的路径总数
vector<ll> e[maxn];//存图
inline void dfs(ll x)//记忆化搜索
{
if(b[x]) return ;
b[x]=1;
for(int i=0;i<e[x].size();i++)
{
ll y=e[x][i];
dfs(y);
(a[x]+=a[y]+b[y])%=mod;
(b[x]+=b[y])%=mod;
}
}