[学习笔记] 期望
咱也不知道笔记该怎么整,咱期望就只知道莽,知道线性性也⑧太知道怎么用。
\(1\)、定义:
什么“所有情况的概率加权平均值blabla”,一般用处不大?
或者形式化一点,$ \rm E(X)=\sum_i(~P(X=i)\cdot i~) $
e.g:Luogu3802 小魔女帕琪
这东西我硬推推出来一个:
的东西。感觉还可以?然后其实就是一种思想?此时总方案数\(\rm S\)这东西不应该除以某些奇怪的阶乘,或者说,不需要,因为样本空间可以理解为先发生了\(A\)和发生了\(B\)虽然局面一样但是概率独立(大概
这题写过题解,现在复习一遍。大概就是考虑维护一个前缀和,构造数列
然后我们发现它的级数很美妙:
正好就是我们要求的答案。
但此时直接前缀和会有问题,因为多余的实际上是\(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)\) 。
对于这东西的证明大概如下:
(随便粘了个过来也⑧太知道对不对)
然后其实,\(\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])\)的期望
实际上可以转化成数学语言:
3.2 等价技巧
实际上是取球问题,大概思路就是取每一个球是独立的,这一点在期望的线性性上体现得比较明显:
- 箱中有\(n\)个球\(1…n\),你要从中拿\(m\)次球,拿了后不放回,求取出的数字之和的期望 。
还是期望的线性性:
-
箱中有\(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)=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.