概率/期望 DP
这里对概率与期望,及 DP 做一个简单的小结
前置芝士
概率
用 \(P(A)\) 表示 事件A 发生的概率
-
非负性:任意事件 \(A\) ,都应有 \(0\le P(A)\le 1\)
-
规范性:对于必然事件 (\(\Omega\)),有 \(P(\Omega)=1\)
-
可列可加性:设 \(A_1,A_2,...,A_n\) 为两两不相容的事件,即 \(i\not = j,\ A_i\cap A_j=\emptyset\),有 \(P(A_1\cup A_2\cup,...,\cup A_n)=P(A_1)+P(A_2)+...+P(A_n)\)
注意:\(P(AB)\) 表示 \(P(A\cap B)\),即 \(A,B\) 共同发生的概率
- 广义加法:\(P(A\cup B)=P(A)+P(B)-P(AB)\)
古典概型
特点:
-
有限性:所有可能出现的事件有限
-
等可能性:每个事件发生的概率相等
计算公式:
如果一次实验中可能出现的结果有 \(n\) 个,而且所有结果出现的可能性都相等,那么每一个基本事件的概率都是 \(\frac 1 n\);如果某个 事件A 包含的结果有 \(m\) 个,那么事件A的概率为 \(\frac m n\)
条件概率
-
定义:\(P(A|B)\) 表示:在
事件B发生后,事件A发生的概率 -
计算公式: \(P(A|B)=\frac{P(AB)}{P(B)}\)
解释为:事件A 与 事件B 的交集 在 事件B 中所占的比例
可以在这里加强理解
全概率公式
用途:将对一个复杂事件 \(A\) 的概率求解,转化为在不同情况下发生的简单事件的概率的求和问题。
-
定义:如果 \(B_1,B_2,...,B_n\) 满足
完备事件组(也就是对样本 \(S\) 的划分),即:-
\(i\not = j,\ B_i\cap B_j=\emptyset\)
-
\(B_1\cup B_2\cup...\cup B_n=S\)
则有 \(P(A)=P(A|B_1)P(B_1)+P(A|B_2)P(B_2)+...+P(A|B_n)P(B_n)\)
-
贝叶斯(Bayes)公式
由条件概率的计算式,我们可以得到:
也可以变形为:
期望
用 \(E(A)\) 表示 事件A 的期望
如果一个随机变量的取值个数有限(比如一个表示骰子示数的随机变量),或可能的取值可以一一列举出来(比如取值范围为全体正整数),则它称为 离散型随机变量。
(摘自 OI-Wiki)
\(E(A)=\sum_{\alpha \in I(A)} \alpha\ ·P(A=\alpha)\)
- 期望的线性性:对于任意两个随机变量 \(X,Y\)(不要求相互独立),有 \(E(X+Y)=E(X)+E(Y)\)。利用这个性质,可以将一个变量拆分成若干个变量,分别求这些变量的期望值,最后相加得到所求变量的值。
其中,\(I(A)\) 为 \(A\) 的值域
- 与概率类似,期望也有
全期望公式:
\(E(A)=\sum_{\alpha \in I(A)} P(B=\alpha)E(A|(B=\alpha))\)
DP部分
无非是一下三类
-
求概率
这类一般用顺推的方式,也就是从初始状态推向结果
-
求期望
这类有时会采用倒推的方式,从结果推至初始状态
为什么倒推的方法是可行的?在网上看了不少文章都没有严谨的证明,只能通过感性理解:求期望的过程其实大多数情况下都是形成了一棵
DAG,边权就是转移乘上的概率,统计期望就是对所有叶子结点的值求和,而叶子结点的值其实就是树根到结点的边权乘积,那么我们就可以倒过来,将叶子结点上的事件发生的概率看做 \(100\%\),边权不变,因此最后根节点的值与原答案的值相等
倒推的优点:转移时可以直接用 \(E(x)=(E(y)+a_{x,y}) / P(x)\)
-
有后效性的 DP
这部分需要用高斯消元,就是解方程
例题
CF908D New Year and Arbitrary Arrangement
我们先考虑正着推方程:
设 \(f_{i,j}\) 表示当前序列有 \(i\) 个 \(a\),有 \(j\) 个 \(ab\) 子序列
显然有转移方程:(我们这里令 \(A=\frac{p_a}{p_a+p_b}\), \(B=\frac{p_b}{p_a+p_b}\))
但显然,由于 \(f_{i,j}\) 中的 \(i\) 可以无限延伸,使问题变得非常棘手,于是我们开始考虑倒推
我们注意到,当 \(j<k,\ i+j\ge k\) 时,我们这时加一个 \(b\) 就会让序列停止扩展
所以我们就得到 \(f_{i,j},\ i+j\ge k\) 的期望边界:
这里的 \((i+j)\) 是终止时 \(AB\) 子序列的个数,所以直接转移期望
再将 \(f_{i+1,j}\) 拆开(\(f_{i+1, j}=A\times f_{i+2,j}+B\times (i+j+1)\))
所以有
一直拆,就会得到一个无限式:
由于这两个公式(最后会证明):
因此式子化简为:
(这里注意到 \(B=1-A\))
边界情况就计算完毕了
对于一般情况,就有 \(f_{i,j}=f_{i+1,j}\times A+f_{i,i+j}\times B\)
最后答案是 \(f_{0,0}\),但由于 \(b\) 也可以无限填,所以有 \(f_{0,0}=f_{1,0}\times A+f_{0,0}\times B\)
但其实移一下项,就会有 \(f_{1,0}=f_{0,0}\)
因此最后答案应输出 \(f_{1,0}\)
公式证明:
-
\[\sum_{i=0}^\infty p^i=\frac{1}{1-p} \]
不难发现,这就是一个等比数列求和,因此根据错位相减法,令 \(X=\sum_{i=0}^\infty p^i,\ Y=\sum_{i=1}^\infty p^i\),有
又因为 \(Y=p\times X\),所以原式为:
\(\frac{X-Y}{1-p}=\frac{1}{1-p}\)
证毕
-
\[\sum_{i=0/1}^\infty p^i\times i=\frac{p}{(1-p)^2} \]
原式可以转化为
求解每一个 \(\sum_{i=a}^\infty p^i\),根据上面的方法,得到 \(\sum_{i=a}^\infty p^i=\frac{p^a}{1-p}\)
所以原式再一次化为:
结果分式上面又是 \(\sum_{i=1}^\infty p^i\)(注意 \(i\) 从 \(1\) 开始),再代入,就得到
证毕

浙公网安备 33010602011771号