概率生成函数

发布时间 2023-07-19 16:47:11作者: Rolling_star

如果 \(X\) 是一个取非负值的随机变量的话,它的概率生成函数(probability generating function,PGF)是:

\[G_X(z)=\sum_{k\ge 0}P\left(X=k\right)z^k \]


性质

  • \(G_X(1)=1\)
    显然成立

  • \(G_X'(1)=E(X)\)
    考虑 \(G_X'(z)=\sum\limits_{k\ge 0}k\cdot P\left(X=k\right)z^{k-1}\)
    所以 \(G_X'(1)=E(X)\)

  • \(Var(X)=G_X''(1)+G_X'(1)-G_X'(1)^2\)\(Var(X)\) 表示随机变量的方差)
    因为有 \(Var(X)=E(X^2)-E(X)^2\\\)
    然后 \(E(X^2)=E(X(X-1))+E(X)\)\(E(X(X-1))=G_X''(1)\) 由此得证

  • 如果 \(X\)\(Y\) 是独立的,那么 \(G_{X+Y}(z)=G_X(z)G_Y(z)\)
    考虑卷积意义易证


常见 PGF

均匀分布

随机变量 \(X\) 等概率取 \(\{0,1,\cdots,n-1\}\) 中的每个值,它的 PGF 是:

\[U_n(z)=\dfrac 1n(1+z+\cdots+z^{n-1})=\dfrac{1-z^n}{n(1-z)} \]

尴尬的是,这个式子在 \(z=1\) 时没有定义,如果使用洛必达法则的话,\(U^{(n)}_n\) 分母中还会出现 \(1-z\) 项,显然是不行的

但是可以通过 \(U_n(1+z)\) 的麦克劳林级数来解决这个问题:

\[U_n(1+z)=\sum_{i=0}^{\infty}\dfrac{U_n^{(i)}}{i!}z^i \]

与上一个式子联立可解得 \(U_n^{(m)}=\dfrac{\binom n {m+1}}{n}\)

二项分布

设硬币正面朝上概率为 \(p\),反面向上概率为 \(q\),满足 \(p+q=1\)

考虑投掷 \(n\) 次硬币,正面出现次数的 PGF:

\[H_n(z)=(q+pz)^n=\sum_{k\ge 0}\binom nk p^k q^{n-k} z^k \]

负二项分布

还是考虑抛硬币,一直投掷硬币直到出现正面,求需要抛 \(k\) 次的概率

容易得出其 PGF 为:

\[\sum_{k\ge 1}q^{k-1}pz^k=\dfrac{pz}{1-qz} \]

由此可以扩展到出现 \(n\) 个正面的情况,即:

\[\left(\dfrac{pz}{1-qz}\right)^n=\sum_{k\ge 0}\binom{k-1}{k-n}p^nq^{k-n}z^k \]


例题

练手题

求出 PGF:

\[G_n(z)=\sum_{k\ge 0} p_{k,n}z^k \]

的封闭形式,其中 \(p_{k,n}\)\(n\) 个物体恰有 \(k\) 个轮换的随机排列的概率
并求出它的期望

显然我们可以得出 \(p_{n,k}=\dfrac{\begin{bmatrix}n\\k\end{bmatrix}}{n!}\)

所以 \(G_n(z)=\sum_{k\ge 0}\dfrac{\begin{bmatrix}n\\k\end{bmatrix}}{n!}z^k=\dfrac{z^{\overline n}}{n!}\)

\[\dfrac{z^{\overline n}}{n!}=\prod_{k=1}^n\dfrac{k-1+z}{k} \]

\(k\) 项的系数和为 \(1\),所以也可以看作 PGF,又因为 PGF 相乘相当于随机变量相加,所以可以对这些分别求导再相加

\(k\) 项的期望为 \(\dfrac 1k\),所以 \(G'_n(1)=H_n\)

歌唱王国

\(G(z)\) 为关于未结束字符串长度的 (伪)PGF
\(F(z)\) 为关于刚结束字符串长度的 PGF

那么我们要求的即为 \(F'(1)\)

可以发现,\(F\)\(G\) 存在以下关系:

\[1+zG(z)=G(z)+F(z) \]

其意义为在未结束字符串后面随便加一个字符,它就包含了未结束和已结束两种情况

两边求导可得 \(zG'(z)+G(z)=G'(z)+F'(z)\),将 1 代入得 \(G(1)=F'(1)\),那么只需要求 \(G\) 即可

对于 \(F\)\(G\) 还存在以下关系:

\[\left(\dfrac zn\right)^mG(z)=\sum_{i=1}^{m}[\operatorname{pre}_iA=\operatorname{suf}_iA]F(z)\left(\dfrac zn\right)^{m-i} \]

其中 \(n\) 为字符集大小,\(m\) 为字符串长度,\(\operatorname{pre/suf}_iA\) 表示字符串 \(A\) 的长度为 \(i\) 的前缀/后缀

其意义为向未结束字符串后边加一个目标字符串,其等价于以结束字符串向后面加目标字符串的 border

化简可得:

\[G(1)=\sum_{i=1}^m[\operatorname{pre}_iA=\operatorname{suf}_iA]n^i \]

硬币游戏

和上一道题极其类似,只不过是求概率而且是多个串

\(G\) 的定义与上题类似,定义 \(F_i(z)\) 为关于使得第 \(i\) 个人获胜的字符串长度的 (伪)PGF,\(F(z)=\sum F_i(z)\)

发现上题的第一个式子没用了,但是第二个式子仍有用:

可以扩展为:

\[\left(\frac z2\right)^mG(z)=\sum_{i=1}^{n}\sum_{k=1}^{m}[\operatorname{pre}_kS_i=\operatorname{suf}_kS_l]F_l(z)\left(\frac z2\right)^{(m-k)} \]

其意义为向未结束字符串后面加第 \(l\) 个字符串,其等价于所有人胜利的序列向后加胜利的人的字符串与第 \(l\) 个不重合的部分

然后还有一个关系式为 \(F(1)=\sum F_i(1)=1\) 然后 \(n+1\) 个未知数 \(n+1\) 个方程,高斯消元即可