• 概率生成函数


    概念

    (X) 为非负整数集 (mathbb{N}) 上的离散随机变量,其满足 ( ext{Pr}(X=i)=a_i),则称 (a_n (n in mathbb{N})) 的生成函数为 (X) 的概率生成函数,得:

    [large F(z)=mathbb E(z^X)=sum_{i=0}^infty ext{Pr}(X=i)z^i ]

    因为 (X) 为非负整数集 (mathbb{N}) 上的离散随机变量,所以有:

    [large F(1)=sum_{i=0}^infty ext{Pr}(X=i)=1 ]

    (F(z)) 求导,得:

    [large {F}'(z)=sum_{i=0}^infty i ext{Pr}(X=i)z^{i-1} ]

    (X) 的期望为:

    [large E(X)={F}'(1)=sum_{i=0}^infty i ext{Pr}(X=i) ]

    (X) 的方差为:

    [large large Var(X)={F}''(1)+{F}'(1)-({F}'(1))^2 ]

    应用

    [CTSC2006] 歌唱王国

    给定长为 (m) 的序列 (A),每次等概率随机一个 (1)(n) 的数加到初始为空的序列 (B) 的末尾,当 (A)(B) 的子串时,停止随机,求序列 (B) 的期望长度。链接

    (m leqslant 10^5)

    (f_i)(B) 长度为 (i) 时停止的概率,(g_i)(B) 长度为 (i) 时未停止的概率,分别得概率生成函数 (F(x))(G(x)),所求即为 ({F}'(1))

    (a_i) 表示 (A[1,i]) 是否为 (A)( ext{border}),其取值为 (0)(1),得:

    [largeegin{aligned} xG(x)+1&=F(x)+G(x) \ G(x)left( frac{1}{n}x ight)^m&=sum_{i=1}^ma_iF(x)left( frac{1}{n}x ight)^{m-i} end{aligned} ]

    第一个式子为未停止时往后加一个数字,其可能停止,也可能未停止,加 (1)(B) 为空的情况。第二个式子是向未停止的序列 (B) 直接加上序列 (A),其一定会停止,但发现不一定要全部加上序列 (A),这里还需考虑 ( ext{border})

    对第一个式子求导并代入 (x=1) 得:

    [largeegin{aligned} G(x)+x{G}'(x)&={F}'(x)+{G}'(x) \ {F}'(1)&=G(1) \ end{aligned} ]

    (x=1) 代入第二个式子得:

    [largeegin{aligned} G(1)left( frac{1}{n} ight)^m&=sum_{i=1}^ma_iF(1)left( frac{1}{n} ight)^{m-i} \ G(1)&=sum_{i=1}^ma_in^i \ end{aligned} ]

    因此有 ({F}'(1)=sumlimits_{i=1}^ma_in^i),用 (KMP) 即可 (O(m)) 求解。

    [SDOI2017] 硬币游戏

    给定 (n) 个长度为 (m)(01) 序列 (A_i),序列互不相同,每次等概率随机 (0)(1) 加到初始为空的序列 (B) 的末尾,当有 (A_i)(B) 的子串时停止,对于每个 (i) 求出因其停止的概率。链接

    (1 leqslant n, m leqslant 300)

    (f_{i,j})(B) 长度为 (j) 时因 (i) 停止的概率,(g_i)(B) 长度为 (i) 时未停止的概率,分别得概率生成函数 (F_i(x))(G(x)),所求即为 (F_i(1))

    (a_{i,j,k}) 表示 (A_i) 长度为 (k) 的前缀是否和 (A_j) 长度为 (k) 的后缀相等,其取值为 (0)(1),得:

    [large G(x)left( frac{1}{2}x ight)^m=sum_{j=1}^nsum_{k=1}^ma_{i,j,k}F_j(x)left( frac{1}{2}x ight)^{m-k} ]

    和上一题一样,化简得:

    [large large G(1)=sum_{j=1}^nsum_{k=1}^ma_{i,j,k}F_j(1)2^k ]

    注意到:

    [large sum_{i=1}^n F_i(1)=1 ]

    用高斯消元即可 (O(n^3)) 求解。

  • 相关阅读:
    Kendo UI for jQuery电子表格控件可轻松实现Excel导出
    缩短
    google 插件 消息通知
    C#初学者的Hello World代码_艾孜尔江撰
    HTML简易的用户名密码登录页面_艾孜尔江撰
    一次性打开多个网页的工具脚本_艾孜尔江撰
    使用a标签无法跳转到指定网页的解决办法
    Flutter安装+Vscode+夜神模拟器+android SDK
    gitbook 说明
    两个模块之间项目依赖问题
  • 原文地址:https://www.cnblogs.com/lhm-/p/14270479.html
Copyright © 2020-2023  润新知