[学习笔记] 期望

咱也不知道笔记该怎么整,咱期望就只知道莽,知道线性性也⑧太知道怎么用。

\(1\)、定义:

什么“所有情况的概率加权平均值blabla”,一般用处不大?

或者形式化一点,$ \rm E(X)=\sum_i(~P(X=i)\cdot i~) $

e.g:Luogu3802 小魔女帕琪

这东西我硬推推出来一个:

\[\frac{\left(\begin{array}{c}{\mathrm{S}-6} \\ {1}\end{array}\right) \cdot 7 ! \cdot \prod_{\mathrm{i}=1}^{7} \mathrm{a}_{\mathrm{i}} \cdot(\mathrm{S}-7) !}{\mathrm{S} !} \]

的东西。感觉还可以?然后其实就是一种思想?此时总方案数\(\rm S\)这东西不应该除以某些奇怪的阶乘,或者说,不需要,因为样本空间可以理解为先发生了\(A\)和发生了\(B\)虽然局面一样但是概率独立(大概

e.g.:Luogu5489 [LnOI2019]脸滚键盘

这题写过题解,现在复习一遍。大概就是考虑维护一个前缀和,构造数列

\[\rm F_i=F_{i-1}\cdot base_i+base_i \]

然后我们发现它的级数很美妙:

\[\bold {\sum_{i=1}^{n}F_i=base_1+base_2\cdots+base_n+base_1base_2+base_2base_3\cdots+\prod_{i=1}^{n}base_i} \]

正好就是我们要求的答案。

但此时直接前缀和会有问题,因为多余的实际上是\(a_0\cdots a_n\)那一堆项,所以需要像哈希一样左半边乘上\(\prod_{i=1}^{r}base_i+\prod_{i=1}^{r-1}base_i+\cdots +\prod_{i=1}^{l}base_i\)

\(2\)、期望的线性性

唔,这个地方其实应用是很广泛的。大概就是对于两个事件\(\rm X,Y\)\(\rm E(X+Y)=E(X) +E(Y)\)

对于这东西的证明大概如下:

\[\begin{aligned}\rm E(X+Y) & {=\rm \sum_{i} \sum_{j} P(X=i \& \& Y=j)(i+j)} \\ & {\rm =\sum_{i} \sum_{j} P(X=i \& \& Y=j) i+\sum_{i} \sum_{j} P(X=i \& \& Y=j) j} \\ &{\rm =\sum_{i} i \sum_{j} P(X=i \& \& Y=j) j+\sum_{i} j \sum_{j} P(X=i \& \& Y=j) i} \\ & {\rm =\sum_{i} P(X=i) i+\sum_{j} P(Y=j) j} \\ & {\rm =E(X)+E(Y)}\end{aligned} \]

(随便粘了个过来也⑧太知道对不对)

e.g.:Luogu1297 [国家集训队]单选错位

然后其实,\(\rm E_S=E(1)+E(2)+E(3)\cdots\)

观察\(E(i)\),实际上只与\(base_i,base_{i+1}\)有关,那么每一项的贡献就是\(\frac{1}{\max(base_i,base_{i+1})}\)。加起来就好。

e.g.: Luogu3924 康娜的线段树

显然我们可以知道维护的就是\(\sum_{i=1}^{n}\frac{val_i}{depth_i}\) 。这东西看上去并不是很好维护,但是我们可以考虑离线操作。

考虑爆算出一开始的值,这一块想咋爆算咋爆算。

之后每次修改实际上是在改一些通达叶子结点的链。我们单独考虑每一条这样的链,增加的答案实际上就是每条链的上每个点经过的概率。我们考虑把所有结果最后除以\(\rm maxL\),即深度最大值,那么我们需要维护的实际上变成了每个点乘上一个\(2^{\rm maxL-depth_i}\)这么一个权,一整条链深度从高到低正好是一组等比数列,所以就是\(2^{\rm maxL}-1\)

但是注意这个结论有瑕疵,因为并不是每个叶节点的深度都是\(\rm maxh\)。而这也比较好办,考虑对于每条链单独特判一下就好。

\(3\)、诡异的期望模型

3.1 容斥技巧

  • \(n\)个随机变量\(\rm X[1…n]\),每个随机变量都是从 \(\rm 1…S\) 中 随机一个整数,求\(\rm max(X[1…n])\)的期望

实际上可以转化成数学语言:

\[\begin{aligned}\rm E&\rm =\sum _{i=1}^{S}P(maxx=i)\times i\\\ & \rm =\sum _{i=1}^{S}i(P(maxx\leq i)-P(maxx\leq i-1))\\\ & \rm = \sum_{i=1}^{S}i((\frac{i}{S})^n - (\frac{i-1}{S})^n)\end{aligned} \]

3.2 等价技巧

实际上是取球问题,大概思路就是取每一个球是独立的,这一点在期望的线性性上体现得比较明显:

  • 箱中有\(n\)个球\(1…n\),你要从中拿\(m\)次球,拿了后不放回,求取出的数字之和的期望 。

还是期望的线性性:

\[E\left(\sum_{i=1}^{n} X_{i}\right)=\sum_{i=1}^{n} E\left(X_{i}\right)=\sum_{i=1}^{n} P(X=i) i=\sum_{i=1}^{n} \frac{m}{n} \times i=\frac{m}{n} \sum_{i=1}^{n} i=\frac{m}{n} \times \frac{n(n+1)}{2}=\frac{m(n+1)}{2} \]

  • 箱中有\(n\)个球\(1…n\),你要从中拿\(m\)次球,拿了后放回,求取出的数字之和的期望 。

    我们考虑每个球独立,拿到的概率还是\(\frac{m}{n}\)。所以最后答案与第一问相同。

  • 箱中有 n 个球\(1…n\),你要从中拿 \(m\) 次球,拿了后以 \(p_1\) 的概率放回,以 \(p_2\) 的概率放回两个和这个相同的球,求取出的数字之和的期望。

    这个地方可能有点绕。但是就是“球球平等”的思想。或者我们考虑对于放回和不放回,上文已经论证过了没有区别。但是后一个操作,考虑既然我球\(A\)摸完以后可以多一个,那么球\(B\)摸完以后以相等的概率也会多一个。所以还是不变,一个球这次增多了其他的也会增多。最终的答案也是\(\frac{m(n+1)}{2}\)

3.3 状态转移

……就是游走模型。大概就是说假设一个点的出度为\(k\),他么他有\(\frac{1}{k}\)的概率走到

  • 在一条 \(n\) 个点的链上随机游走,求从一段端走到另一端的期望步数

考虑分阶段进行。根据线性性,\(\rm E(T)=\sum_{i=1}^{n-1} E(X_i)\)。其中\(\rm E(X_i)\)表示从\(i\)第一次走到\(i+1\)的期望步数。

然后我们列方程,考虑一步转移走到了\(i+1\)还是\(i-1\)

\[\rm E(X_i)=0.5+0.5\cdot(1+E(X_i)+E(X_i-1)) \]

解出来得\(\rm E(X_i)=2+E(X_i-1)\)

  • 在一个\(n\)个点的完全图上游走,求从一个点到另一个点期望步数。

完全图的话,每个点走到每个点的概率都是\(\frac{1}{n-1}\)。于是这个题就有好多种不同的解法,比如我们用一个推论“概率为\(P\)的事件期望\(\frac{1}{P}\)次后发生”,就可以直接证明\(\rm E=\it n-1\)

  • 在一个\(2n\)个点的完全二分图上游走,求一个点走到另一个点的期望步数。

    解方程的思想,分类讨论是在同侧还是异侧。记\(E_a\)表示在同侧的期望步数,\(E_b\)表示在异侧的期望步数。那么考虑有:

    \[\begin{aligned} E_b= \frac{1}{n}+\frac{n-1}{n}(E_b + 2) \end{aligned} \]

    也是用线性性进行讨论,前者是从\(A\)侧走到\(B\)侧的期望步数,就是\(\frac{1}{n}\cdot 1=\frac{1}{n}\)步;后者是从\(B\)侧又走到\(B\)侧,步数是\(E_b+2\),乘上\(\frac{n-1}{n}\)的意思是不需要从自己走回自己。

    然后关于同侧,即\(E_a\)由于是二分图所以会有\(E_b=E_a+1\)。然后最终就可以解出来:

    \[E_b=n+1,E_a=n \]

    注意其实先求\(E_a\)也是可以的,但是主要是转移不好转移,因为一开始的位置实际上也是在同侧,所以对异侧的转移会显得更自然一些。

  • 在一张 \(n\) 个点的菊花图上游走,求从根走到另一个点的期望步数。

    也是分类讨论,讨论现在在根节点还是菊花瓣上叶子节点上。如果在根节点那有\(1\cdot\frac{1}{n-1}\)的期望走到,如果在叶子节点上就有\((E+2)\cdot \frac{n-2}{n-1}\)的期望走到。解一下方程可以发现答案就是\(E=2n-3\)

  • 在一棵 \(n\) 个点的树上游走,问从根走到\(x\)的期望步数。

    唔,其实有好多不同版本,也可以就是从\(y\)走到\(x\)的期望步数,因为游走问题是不存在有根树的,所以直接把\(y\)拽起来当根也没什么问题。然后就是考虑链做法里面的思想,设\(f_u\)表示\(u\)第一次走到他父亲的期望步数,然后就有方程

    \[f_u=\frac{1}{deg_u}+\frac{1}{deg_u}\sum_{v\in son _u}(1+f_u+f_x) \]

    前者是走上去的,后者是不小心走下去的。然后期望的线性性加起来即可。

    然后就是高消时间了

  • 构造一张\(200\)个点的无向图,使得上面从\(\rm S\)走到\(\rm T\)的随机游走期望步数\(\geq 100,0000\)

    考虑是一条链的时候大概有\(O(n^2)\)的期望步数,在一张完全图上有\(O(n)\)的期望步数,于是就可以考虑在\(\rm S\)上连出一张\(100\)个点的完全图,然后在一条链连到\(T\),就是\(n^3\)的期望步数。具体实现似乎需要微调的亚子233.

posted @ 2019-10-27 19:43  皎月半洒花  阅读(410)  评论(0编辑  收藏  举报