概率与期望
A. 基本概念
一、不严谨的定义:
- 随机变量:有多种可能的取值的变量,
例如:对于随机抛硬币的事件,有随机变量 \(X_i\) 定义为第 \(i\) 次抛硬币是否为正面
\[X_i= \begin{cases} 0, & 第\ i\ 次硬币是反面 \\ 1, & 第\ i\ 次硬币是正面 \end{cases} \]令 \(X=X_1+X_2\),有
\[X= \begin{cases} 0, & 反反\\ 1, & 正反或反正\\ 2, & 正正 \end{cases} \]掷骰子等类似事件同理。
- \(P(A)\):事件 A 发生的概率
如果我们令 A 表示连续两次抛出硬币的结果为:正反,则 \(P(A)=1/4\)。
- \(E(X)\):随机变量 X 的期望值
令 \(X\) 为 \(n\) 次抛掷,得到正面的数量的数学期望,\(E(X)=\sum_{i=0}^n (P(X=i)*i)\)
当 \(n=1\) 时,\[E(X) = P(X=0)\times 0+P(X=1)\times 1={1\over 2}\times 0 + {1\over 2}\times 1={1\over 2} \]即抛掷一次,得到正面的数学期望次数为 \(1\over 2\)。
- 独立事件:互不影响的事件,满足 \(P(AB)=P(A)P(B)\)
- 独立事件
事件A:抛硬币得到正面;
事件B:骰子掷出 6- 非独立事件
事件A:小明昨晚没有睡好
事件B:小明今天上课睡着了
- 期望的线性性质:对于两个随机变量的加权和,其期望等于两个随机变量分别的加权期望之和。
\(E(AB)=E(A)+E(B)\)(信息学中几乎全部是独立事件,重点在于算法,而不在于概率知识)
- 条件概率,\(P(AB)=P(A)P(B|A)\),其中 \(P(B|A)\) 为在 A 发生的条件下 B 的概率。
B. 简单的问题
- 随机一个长度为 \(n\) 的排列 \(p\),求 \(p[1\dots i]\) 中 \(p[i]\) 是最大的数的概率
考虑当前 \(i\) 个数选定时,每个数出现在每个位置的次数都是一样多的(满足对称性)
所以前 \(i\) 个数的全排列中,每个位置的数字成为最大值的次数也是一样多的
因此,\(p[i]\) 是最大数的概率是 \(1/i\)。
- 随机一个长度为 \(n\) 的排列 \(p\),求 \(i\) 是 \(j\) 的直接后继的概率
\((n-1)!/n!=1/n\)
- 随机一个长度为 \(n\) 的排列 \(p\),求它包含 \(w[1\dots m]\) 作为子序列/连续子序列的概率
连续子序列:\((n-m+1)!/n!\)
子序列:\({n!\over m!(n-m)!}\ast (n-m)!/n!=1/m!\)
使用“任两个元素位置对称”的思想,可以知道在所有全排列中,这 \(m\) 个元素的每种排列出现的次数都是一样多的,也可以得到答案是 \(1/m!\)。
- 给一个序列 \(a\),每次随机删除一个元素,问 \(a[i]\) 和 \(a[j]\) 在过程中相邻的概率,\(i,j\) 是给定的
同样考虑整个序列的删除顺序是一个全排列,\([i,j]\) 区间每种排列出现的次数都是一样多的,因此,如果需要 \(a[i]\) 和 \(a[j]\) 相邻,则转换为如下两种删除序列的排列:\(i,\dots,j\) 以及 \(j,\dots,i\),令 \(t=|j-i|+1\),则答案为 \({2(t-2)!\over t!}={2\over t(t-1)}\)。
C. 期望的线性性
\(E(X+Y)=E(X)+E(Y)\),不要求 X 与 Y 独立。
当 \(X\) 只会取 0,1 时,\(E(X)=P[X=1]\)
- 箱子里有 \(n\) 个球 \(1\dots n\),你要从里面拿 \(m\) 次球,拿了之后不放回,求取出的数字之和的期望。
令 \(X_i\) 表示第 \(i\) 次抽出的球的期望编号,求 \(E(\sum_{i=1}^m X_i)\)
求 \(P[\sum_{i=1}^mX_i]\) 是很麻烦的,因为事件之间并不独立
于是,我们利用期望的线性性,\(E(\sum_{i=1}^mX_i)=\sum_{i=1}^mE(X_i)\)
现在单独求每一个 \(E(X_i)\),由“对称性”思想,它们都是相等的
令 \(Y_i\) 表示抽出一个球,编号恰好是 \(i\) 的事件
\(E(X_i)=\sum_{i=1}^nP[Y_i]*i=\sum_{i=1}^n{i\over n}={n+1\over 2}\)
从而,\(E(\sum_{i=1}^mX_i)=\sum_{i=1}^mE(X_i)={m(n+1)\over 2}\)
- 随机一个长度为 \(n\) 的排列 \(p\),求 \(p[1\dots i]\) 中 \(p[i]\) 是最大的数时 \(i\) 的期望个数。
令 \(X_i\) 表示 \(p[1\dots i]\) 中 \(p[i]\) 是最大的数
\(E[\sum_{i=1}^nX_i]=\sum_{i=1}^nE[X_i]=\sum_{i=1}^n{1\over i}\)
- 随机一个长度为 \(n\) 的排列 \(p\),求排列中极大值的个数,也就是比左右相邻的数都大的数的期望个数。
令 \(X_i\) 表示第 \(i\) 个元素是极大值
两端的数各有 \(1/2\) 概率成为极大值,其余中间的数皆有 \(1/3\) 的概率成为极大值
\(E(\sum_{i=1}^nX_i)=\sum_{i=1}^nE(X_i)=1/2+1/2+(n-2)/3=(n+1)/3\)
- 有 \(N\) 个黑球,\(M\) 个白球,每次等概率取出一个球(不放回),将取出来的球的颜色写成一个 "0/1" 序列,求 "01" 串总共出现的期望次数。
令 \(X_i\) 表示第 \(i\) 和 \(i+1\) 位拼成的串为 "01"
\(E(\sum_{i=1}^{N+M-1}X_i)=\sum_{i=1}^{N+M-1}E(X_i)=(N+M-1)\ast {C_{N+M-2}^{N-1}\over C_{N+M}^N}={NM\over N+M}\)
- 有 \(N\) 个黑球,\(M\) 个白球,每次等概率取出一个球(不放回),将取出来的球的颜色写成一个 "0/1" 序列,求期望多少步能取出所有的黑球。
- 定义做法:
若 \(K\) 步取出了所有的黑球,前面有 \(N-1\) 个黑球,\(K-N\) 个白球,共有 \(\sum_{K=N}^{N+M}{(K-1)!\over (N-1)!(K-N)!}\) 种排列,概率为 \(\sum_{K=N}^{N+M}\left({(K-1)!\over (N-1)!(K-N)!}/{(N+M)!\over N!M!}\right)\)
期望步数为 \(\sum_{K=N}^{N+M}\left(K\cdot{(K-1)!\over (N-1)!(K-N)!}/{(N+M)!\over N!M!}\right)=N+{NM\over N+1}\)- 期望线性性做法:
令 \(X_i\) 表示第 \(i\) 个白球在最后一个黑球前面
每个白球的期望都是相等的,考虑一个白球要放在 \(N\) 个黑球的 \(N+1\) 个空的前 \(N\) 个空中的期望步数,为 \(N\over N+1\)。
\(E(最后一个黑球)=N+E(X_1+X_2+\dots+X_M)=N+\sum_{i=1}^ME(X_i)=N+M\cdot E(X_1)=N+M\cdot {N\over N+1}\)
D. 随机游走模型(Random Walk)
无限模型
- 抽卡,\(p\) 的概率会抽中,问期望多少次能抽中
“抽中” 和 “未抽中” 两个状态,如果本次没有抽中,就回到 “未抽中” 状态继续,直到 “抽中” 结束,令 \(x\) 表示抽中的期望次数,则
\(x=1\cdot p + (1-p)\cdot (1+x)\Rightarrow x=1+(1-p)\cdot x \Rightarrow x = 1/p\)
- 抽卡,\(n\) 张卡,每次随机抽出一张并放回,问期望多少次能都抽完,即每张卡都抽到过
\(f_i={i\over n}(1+f_i)+{n-i\over n}(1+f_{i+1})\Rightarrow f_i=f_{i+1}+{n\over n-i}\)
\[\begin{aligned} f_0 &= f_1 + {n\over n}\\ f_1 &= f_2 + {n\over n-1}\\ \dots\\ f_{n-1} &= f_n + {n\over 1} \end{aligned} \]\(\sum_{i=0}^{n-1}f_i=O(nlog\ n)\)
- 一条链,你在其中的某个点,随机游走,问首先走到左右端点 (0 和 \(n\)) 的概率是多少
令 \(f_i\) 为从 \(i\) 号点最终到达 0 号点的概率
\(f_0 = 1, f_n=0\)
\(f_i={1\over 2}(f_{i-1}+f_{i+1})\Rightarrow 2f_i=f_{i-1}+f_{i+1}\Rightarrow f_i-f_{i-1}=f_{i+1}-f_i\),间隔相等
\(f_i={n-i\over n}\)
- 一条链,你从左端点 0 开始随机游走,问走到右端点 \(n\) 的期望步数
令 \(f_i\) 表示从 \(i\) 号点最终到达 \(n\) 号点的期望步数
\(f_n=0, f_0=1+f_1\)
\(f_1={1\over 2}(1+f_0)+{1\over 2}(1+f_2)\Rightarrow (f_0-f_1)+2=f_1-f_2\),间隔构成等差为 2 的递增数列
\(f_0=1+3+5+7+\dots+(2n-1)={2n^2\over 2}=n^2\)

浙公网安备 33010602011771号