期望解题法

这篇博客教你如何使用公式,套路地解决一类期望题

tommymio 启发,总结了一下

前置知识:\(\mathrm E[X+Y]=\mathrm E[X]+\mathrm E[Y]\),其中 \(X,Y\) 可以有依赖关系。

证明 OI Wiki 上有。

例题 CF280C Game on Tree

Statement. 给一棵有根树 \((n\le10^5)\),根为 \(1\),每次等概率选一个未删去的点,然后删除他的子树,问删除所有节点的期望次数。

约定

  • \(\mathrm P(X)\) 为事件 \(X\) 发生的概率
  • \(\mathrm E(X)\)\(X\) 的期望值
  • \(\mathrm I(X)=\begin{cases}1&X\ \text{发生}\\0&X\ \text{没发生}\end{cases}\)

\(\mathrm I(X)\) 取个高大上的名字:称 \(\mathrm I(X)\) 为事件 \(X\) 的指示器随机变量。(其实就是艾弗森括号

显然,\(\mathrm E(\mathrm I(X))=\mathrm P(X)\)

分析

\(X_i=\mathrm I(T_i)\),其中事件 \(T_i\) 为点 \(i\) 被选中

那么总共选出的点数 \(X=\sum_{i=1}^n X_i\)

两边取期望得 $$\mathrm E[X]=\mathrm E\left[\sum_{i=1}^n X_i\right]$$

由期望的线性性,$$\mathrm E[X]=\sum_{i=1}^n\mathrm E[X_i]$$

这一步相当于破除了变量间的依赖关系

接下来,如果算出了单个 \(i\)\(\mathrm E[X_i]\) 是什么,问题也就迎刃而解:

\(\mathrm E[X_i]=\mathrm P(T_i)\),即 \(i\) 被选中的概率

\(i\) 要被选中,那 \(i\) 应该是 \(i\) 及它所有祖先中,第一个被选中的

考虑 \(i\) 及它的祖先,这些点的选中机会是平等的,所以 \(\mathrm P(T_i)=\frac{1}{\text{dep}(i)}\),定义 \(\text{dep}(1)=1\)

于是问题解决,$$Ans=\sum_{i=1}^n\frac1{\text{dep}(i)}$$

总结规律

分三步:

  • 设事件 \(T\) 的指示器随机变量。
  • 利用指示器随机变量和期望的线性性质分化问题。
  • 求解事件 \(T\) 发生的概率。

这个方法是核心,掌握这个方法就能举一反三,简单地解决许多的期望题!

再看几道例题。

例 1. UVA12004 Bubble Sort

Statement. 求 \(n(\le 10^5)\) 个数的排列的期望逆序对数

分析

定义该排列为 \(p\)\(X_{i,j}=\mathrm I(T_{i,j})\),其中事件 \(T_{i,j}\)\(i<j\land p_i>p_j\)

那么该排列的逆序对数 \(X=\sum_{i=1}^{n-1}\sum_{j=i+1}^nX_{i,j}\)

两边同取期望,得

\[\mathrm E[X]=\mathrm E\left[\sum_{i=1}^{n-1}\sum_{j=i+1}^nX_{i,j}\right] \]

由期望的线性性,

\[\text E[X]=\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}\text{E}[X_{i,j}] \]

问题变成求一个独立的 \(\text E[X_{i,j}]=\text{P}(T_{i,j})\)

\[\text{P}(T_{i,j})=\frac{\sum_{i=1}^n(i-1)}{n(n-1)}=\frac{\frac{n(n-1)}2}{n(n-1)}=\frac12 \]

\[\text E[X]=\sum_{i=1}^{n-1}\sum_{j=i+1}^n\frac12=\frac{n(n-1)}{4} \]

解决!

例 2. 点菜问题

题意

\(n\) 个人,点 \(m\) 样菜,点菜时他们之间没有交流,每个人点每样菜是随机的,每个人只能点一样菜。

求被点过的菜的期望数,结果对 \(998244353\) 取模,\(n,m<998244353\)

分析

定义 \(X_{i}\) 为第 \(i\) 样菜是否被选。换句话说就是 \(\text I(T_i)\),其中事件 \(T_i\) 为第 \(i\) 样菜被选中。

那么答案 \(X=\sum_{i=1}^mX_{i}\)

同取期望,

\[\text E[X]=\text E\left[\sum_{i=1}^mX_{i}\right]=\sum_{i=1}^m\text E\left[X_i\right] \]

考虑单个 \(\text E[X_i]\) 咋算,也就是单独第 \(i\) 样菜被选的概率。

他等于总数减去第 \(i\) 样菜选 \(n\) 次还选不到的概率,即 \(1-\left(\frac{m-1}{m}\right)^n\)

\[\text E[X]=m\cdot\left(1-\left(\frac{m-1}{m}\right)^n\right) \]

题外话

你可以在 U204177 提交此题。

例 3. P3802 小魔女帕琪

Statement. 给出一个序列,其中包含 \(a_i(0\le a_i\le 10^9)\)\(i(1\le i\le 7)\),问将其随机排列后,期望出现多少次连续 \(7\) 个互不相同的数。

分析

定义 \(X_i\) 为区间 \([i..i+6]\)\(7\) 个数是否互不相同,\(N=\sum_{i=1}^7a_i\)

那么答案 \(X=\sum_{i=1}^{N-6}X_i\)

同取期望,

\[\text E[X]=\text E\left[\sum_{i=1}^{N-6}X_i\right]=\sum_{i=1}^{N-6}\text E\left[X_i\right] \]

问题变成如何求解单个 \(\text E[X_i]\),即随机取 \(7\) 个数,互不相同的概率。

他等于

\[\frac{\prod_{i=1}^7a_i}{\binom{N}{7}} \]

\[\text E[X]=(N-6)\frac{\prod_{i=1}^7a_i}{\binom{N}{7}} \]

写好看点,就是

\[\frac{7!\cdot a_1\cdot a_2\cdot a_3\cdot a_4\cdot a_5\cdot a_6\cdot a_7}{N\cdot(N-1)\cdot(N-2)\cdot(N-3)\cdot(N-4)\cdot(N-5)} \]

解决。

例 4. P1297 单选错位

Statement.

分析

默认约定 \(a_{n+1}=a_1\)

\(X_i\)\(a_i,a_{i+1}\) 的答案是否相同

\[X=\sum_{i=1}^nX_i \]

同取期望得

\[\text E[X]=\text E\left[\sum_{i=1}^nX_i\right]=\sum_{i=1}^n\text E[X_i] \]

问题变成单个 \(\text E[X_i]\) 咋求。

通过简单小学奥数的计算后

\[\text E[X_i]=\dfrac{1}{\max(a_i,a_{i+1})} \]

做完了!

例 5. 石子问题

题意

给定 \(n\) 堆石子,每堆石子有 \(a_i\) 颗石子,每次等概率选择一颗石子,然后一次性取完它这堆的所有石子。请你求出第 \(1\) 堆石子期望第几次被取走。

\(n\le 10^5, a_i\ge 1\)

分析

该题的表示法不太一样:

\(t_i\) 为第 \(i\) 堆石子被取走的时间,他一定是一个排列,\(X_i\)\([t_i<t_1]\)

那么答案

\[X=\sum_{i=2}^nX_i \]

同取期望

\[\text E[X]=\text E\left[\sum_{i=2}^nX_i\right]=\sum_{i=2}^n\text E[X_i] \]

\[\text E[X_i]=\frac{a_i}{a_1+a_i} \]

于是这题就做完了。

例题就讲这么多。

总结

该方法能解决一大类期望问题,不过他还是有局限性的,就是如果答案不能方便的表示出来,他可能就做不了。

posted @ 2024-11-13 19:32  Laijinyi  阅读(5)  评论(0编辑  收藏  举报