概率期望基础

安利一篇好博客
安利两篇好博客
安利三篇好博客

前言:概率期望基础是数学板块中很抽象、很难懂的部分,它的底层逻辑需要很仔细想才能想明白,而且有些题不会就一定没有部分分,所以请一定认真学习概率期望的这部分内容。

基础概念

以一个六面的骰子为例来说一下基本定义:

事件\(A\):就是一件事。我们掷骰子,掷出了点数\(1\),这就是一个事件。
随机变量\(X\):有多种可能取值的变量。我们随便掷骰子,掷出来的点数就是一个随机变量。
\(P(A)\):事件\(A\)发生的可能性大小。对于掷骰子来说,\(1,2,3,4,5,6\)朝上的概率都是\(1/6\)。概率可以看成事件\(A\)的方案数/总方案数。
\(E(X)\):随机变量\(X\)的期望值,\(E(X)=\sum_{i}P(X=i)i\)。对于掷骰子来说,朝上点数的期望值\(E(X)=1/6\times (1+2+3+4+5+6)=3.5\)。期望可以看成变量\(X\)的取值对于方案数的加权平均,也可以简单看成\(X\)取值与对应概率的乘积之和。

一些重要的性质:

\(1\) 如果\(X\)的取值只有\(0/1\),那么\(E(X)=P(X)\)。这个是一个十分显然的性质,但却是概率和期望相互联系的基础。
\(2\) \(E(cX)=cE(X)\),即期望是可以提公因式的。
\(3\) 若事件\(A,B\)相互独立,则\(P(AB)=P(A)P(B)\)。若两个随机变量\(X,Y\)相互独立,则\(E(XY)=E(X)E(Y)\)。直观理解就是,既然独立,那么总方案数就是两个总方案数相乘,概率分子上的方案数也相乘,期望分子直接用分配律展开即可,方案数与权值都是相乘的,所以没有问题。要严格证明可以看第一篇博客。
\(4\) 无论随机变量\(X,Y\)是否独立,\(E(X+Y)=E(X)+E(Y)\)。这个性质是期望线性性,也是若干期望题目基础中的基础。直观理解就是计算每个人的贡献再加起来。例如,对于十位和个位相同的两位数,求数位和的期望\(E(x_1+x_2)=(2+4+6+...+18)/9=10\),但也可以\(E(x_1+x_2)=E(x_1)+E(x_2)=5+5=10\)。但数位积就不能这么算了,因为总方案数受到了两位相等的限制。严格证明还是可以看第一篇博客。

概率期望的方程思想:

有些时候,一些操作看上去是可以永不停歇地进行的,还有一些概率期望间存在推导关系,此时我们要善于利用方程解决问题。我们看\(2\)个问题:
\(1\) 对于概率为\(p\)的事件,要它发生的期望次数\(E\)
可以列出方程:\(E=1+(1-p)E\),移项解得\(E=1/p\),也就是概率为\(p\)的事件,要它发生的期望次数为\(1/p\)次。
\(2\) 抛硬币连续\(2\)次抛中正面,期望要抛硬币的次数\(E\)?
可以列出方程:\(E=1/4*2+1/4*(E+2)+1/2*(E+1)\),移项解得\(E=6\)。所以,抛\(6\)次大概就能出现\(2\)个连续的正面啦。

前后缀和技巧:

要求\(P(X=k)\),可以转化为\(P(X\le k)-P(X\le k-1)\),同样还可以转化为\(P(X\ge k)-P(X\ge k+1)\)。这在某些计数题中可能能管用。

游走问题

普通游走问题

游走问题就是给你起点\(S\),可能会给终点\(T\),在一个树/图上瞎逛,问你一些有关概率期望的问题。一般就是\(3\)种问法:
\(1\) 每个点的期望经过次数。
\(2\) 在每个点停留的概率(就是起点到这个点的所有概率之积加起来,所以可能大于\(1\))。
\(3\) 每个点出发的期望价值,其中价值为边权之和。

\(2\)的本质就是\(1\),只是\(2\)种看法而已。对于边\((u,v)\),我们要用\(u\)转移到\(v\)上,即\(f_v=\sum_{u\notin T}f_up_{u,v}+\epsilon(u)\)。其中\(p_{u,v}\)表示\(u\)游走到\(v\)的概率,\(\epsilon(u)\)代表若\(u\in S\),从\(u\)出发的概率。
\(3\)就应该用\(v\)转移到\(u\)上,即\(f_u(u\notin T)=\sum_{v\notin T}(f_v+w_{u,v})p_{u,v},f_u(u\in T)=0\)

其实转移的不同是求的问题不一样,即是从谁开始还是从谁结束。我们列出\(n\)个方程之后,直接高斯消元即可。注意到可能会有停不下来的情况(就是不与图主要部分连通的部分可能会出现的情况),因此请一定不要偷懒,判一下\(a_{j,i}(j\ge i)\)全为\(0\)的情况。

树上游走问题

\(CF1823F\)

我们发现,直接消元会\(T\)飞,而\(dp\)又无法解决带环的问题,那怎么办呢?

“精妙”的优雅做法

我们以\(t\)为根,删掉\(s\)不在的子树,设\(s\)\(root\)的子树里,\(p_u=\frac{1}{deg_u}\),然后方程式:\(f_u=\sum_vf_vp_v+f_{fa}p_{fa}+epsilon(u)\),其中\(u\)为非根节点,\(v\)\(u\)的儿子,\(fa\)\(u\)的父亲。那么,精妙的一步就是设\(f_u=A_uf_{fa}+B_u\),然后方程式改造成\(f_u=\sum_v(A_vf_u+B_v)p_v+f_{fa}p_{fa}+epsilon(u),(1-\sum_vA_vp_v)f_u=\sum_vB_vp_v+f_{fa}p_{fa}+epsilon(u),f_u=\frac{\sum_vB_vp_v+f_{fa}p_{fa}+epsilon(u)}{1-\sum_vA_vp_v}=A_uf_{fa}+B_u\),所以\(A_u=\frac{p_{fa}}{1-\sum_vA_vp_v},B_u=\frac{\sum_vB_vp_v+epsilon(u)}{1-\sum_vA_vp_v}\)。然后我们发现\(A_u,B_u\)竟然是可以递推的!我们求出\(A_u,B_u\),然后\(f_{root}=\frac{1}{deg_{root}}\)。我们利用\(f_u=A_uf_{fa}+B_u\),从上往下推即可,复杂度\(O(nlogp)\)

正常人的做法

我们考虑把游走拆成\(E(s\to t)=E(s\to e_1)+E(e_1\to e_2)+...+E(e_k\to t)\),其中\(E(u\to v)\)表示\(u\)第一次游走到\(v\)的期望步数。
我们设\(E(u\to fa)=f_u\),我们发现\(f_u=1+\frac{1}{deg_u}\sum_vf_v+f_u\),解得\(f_u=deg_u+\sum_vf_v\)。可以推出,若\(S_u\)\(u\)子树构成的子集,则\(f_u=\sum_{w\in S_u}deg_w=2sz_u-1\)。所以,我们把\(s\to root\)\(f\)都求出来再加起来即可,复杂度\(O(n)\)

宝宝题讲解

下面我们来讲一下第一篇博客里的宝宝题:

\(A\)

这是有原题的:\(CF453A\)
我们直接开写式子:\(E=\sum_{i=1}^mP(max=i)i=\sum_{i=1}^m(P(max\le i)-P(max\le i-1))i=\sum_{i=1}^mi((\frac{i}{m})^n-(\frac{i-1}{m})^n)=m-\frac{\sum_{i=1}^{m-1}i^n}{m^n}\),利用前缀和技巧,复杂度\(O(mlogn)\)

\(B\)

讲过了,请认真听讲,博客做法不太好。

\(C\)

三个题答案都是\(\frac{n+1}{2}m\)。核心就是利用期望线性性拆成每一步的贡献。而注意到,\(n\)个球的地位平等,是完全等价的,所以每个球在第\(i\)步被选到的概率都为\(\frac{1}{n}\),所以每一步的期望都为\(\frac{n+1}{2}\),总期望\(\frac{n+1}{2}m\)。详细严谨证明请看博客。

\(D\)

\(D1\)根据上面的推导可以证明,要向右走\(n\)步,期望需要\(n^2\)步。
\(D2,D3,D4\)直接列方程就可以。
\(D5\)就是树上随机游走模板题的做法。
\(D6\)博客写的完全错误,\(E_u\)的表达式是不对的,自己推一推可以证明步数刚好是\(10^6\)步。

\(E\)

我们挑一部分讲,其他的博客讲得很清楚:
\(E1\)就是拆成有\(i-1\)个数到有\(i\)个数的期望步数。显然成功概率\(\frac{n-i+1}{n}\),那么期望步数\(\frac{n}{n-i+1}\),总步数\(E=n\sum_{i=1}^n\frac{1}{i}=O(nlnn)\)
\(E3-2\)中,平方是一个常考考点,平方在组合上是有顺序地选择\(2\)个可重的数的方案数,这里就是可重选择坐标,分相等和不相等两种情况讨论即可,好的是不同时二者是独立的,期望可以直接乘。
\(E6\)就是把\(i\)是否在\(1\)前被删作为随机变量,利用期望线性性拆开后,通过两两配对的方式,发现\(P(x_i<x_1)=\frac{a_i}{a_i+a_1}\),其中\(x_i\)\(i\)是第几个被删的。所以答案即为\(1+\sum_{i=2}^n\frac{a_i}{a_i+a_1}\)
\(E7\)就是你要把以\(i\)为结尾的和全部的列出方程式来,直接改成期望版本的转移就行了。
\(E9\)博客里忘记乘\(i\)了,化开之后等于\(k+(m-k)\frac{k}{k+1}\)。其实可以更好地理解。首先肯定要\(k\)步了。我们把其他人的贡献拆开,能贡献就是在这\(k\)条边之前,概率为\(\frac{k}{k+1}\),所以总答案为\(k+(m-k)\frac{k}{k+1}\)
\(E10\)我们不好做的原因是一个数的因数都被删掉了,我们可以无视这个删掉的过程,认为每次只删\(1\)个数,我们不要记那些本应被删掉的数的贡献就行了,可以证明这样是对的。用期望线性性拆开后,一个数\(i\)能贡献当且仅当在我们构造的删数排列中,其倍数都在后面,所以\(P(x_i)=\frac{1}{\lfloor \frac{n}{i}\rfloor}\),总答案加起来就行了。

\(F\)

\(F1\)很简单,直接把\(E8\)的结论乘上贡献即可,注意相邻的不要算上!
\(F2\)直接拆成每个数每轮的贡献即可。若某轮有\(k\)个数,则它贡献的概率为\(\frac{2}{k}\),所以总答案为\(\sum_{i=1}a_i\sum_{j=1}^{n-1}\frac{2}{n-j+1}\)
\(F3\)很简单,就不讲了。
\(F4\)是有原题的:\(CF280C\)
\(E10\)一样转化即可,一个点\(i\)要想被计算贡献,当且仅当它的祖先都在它后面,概率\(\frac{1}{dep_i}\),答案加起来就行了,复杂度\(O(n)\)

posted @ 2026-01-23 15:06  captainOI  阅读(4)  评论(0)    收藏  举报