[学习笔记] 生成函数

博客园的格式和我本地的不太一样,有些式子的换行好像被吃了,还有一行里的式子可能显示不全的(缩小网页好像就能显示得更多)。抱歉.QwQ

[学习笔记] 生成函数

[ ] 里的是我还不确定的。

本文内容可能不严谨、可能不准确。

思想(重要)

  • 核心:通过 生成函数刻画问题,再用 处理“多项式”的技巧解决问题。(从 cmd 的博客中学到)
  • 使用 封闭形式 来 [简化分析]、优化实现。
  • 生成函数提供了一类 固定的方法 来求解许多感觉需要很聪明的解法的问题。
  • 想清楚 元素有无标号集合有无标号

分类

  • 普通生成函数(OGF)。
  • 指数生成函数(EGF)。
  • 概率生成函数(PGF)。
  • 狄利克雷生成函数(DGF)。
  • 多占位元生成函数。
    • 二元生成函数(BGF)。

OGF

  • 非常常用。
  • 序列 a 的 OGF 为 n0anxn
  • 在符号化方法中用于 无标号体系

OGF 的封闭形式

  • 常用的推导方法是乘一项和原来的对其,开头 x0 项空出来,减,解方程。
  • 可以拆成若干部分,分别求封闭形式,再加 / 减起来。
  • [还可能对已知的封闭形式求导 [或积分]]。
  • 另外,可能需要用到其他公式、定理或已知的封闭形式。例:二项式定理。

重要i0xi=11x

OGF 的组合意义

  • 和:?

卷积

合并两个集合,合并后 xm 项系数是把 m无标号 的元素划分到两个集合(可以为空)(集合 有标号),方案数相乘再相加。这里的有无标号与原来的 OGF 无关。

例:合并方案数背包。

OGF 的应用

  • 优化 DP、求解背包问题(方案数 / 可行性,其实是 计数):利用“多项式”相关技巧和数学方法优化。
  • 处理无穷项的 DP 状物:例如《Mivik 的标题》。
  • 求解常系数齐次线性递推:Bostan-Mori 算法或其他方法。
  • 求解通项公式:先推出封闭形式再展开。

EGF

  • 序列 a 的 EGF 为 n0anxnn!

    • 可以认为是 a 中每个 ai 都变成 aii! 得到的序列的 OGF,运算规则也和 OGF 一致。
    • 在实际实现中当成 OGF 来实现,所以注意提取 xn/n! 项的系数时要乘 n!。也就是我们要的是 [xn/n!]F(x) 而不是 [xn]F(x)
  • 在符号化方法中用于 有标号体系

EGF 的封闭形式

推导方法:

  • 泰勒展开。
  • 运用已知的封闭形式。
  • 整体法。
  • 拆成若干部分,分别求封闭形式,再加 / 减起来。
  • 运算的组合意义。

重要i0xii!=ex

(1). ai=1.(泰勒展开).

A(x)=i0xii!=ex

(2). ai=[i>0]. from (1).

A(x)=i1xii!=ex1

(3). ai={ik}. 第二类斯特林数.(EGF 卷积的组合意义). from (2).

A(x)=(ex1)kk!1n!{nk}=[xn](ex1)kk!

(4). ai=pi.(整体法,换元). from (1).

A(x)=i0pixii!=i0(px)ii!=epx

(5). ai=[i>0](i1)!.(泰勒展开).([i>0]?).

A(x)=i1xii=ln(1x)

(6). ai=[ik]. 第一类斯特林数.(EGF 卷积的组合意义). from (5).

A(x)=[ln(1x)]kk!=(1)klnk(1x)k!1n![nk]=[xn](1)klnk(1x)k!

EGF 的组合意义

  • 和:?

卷积

两个 EGF 的卷积:卷出 二项式系数。合并两个集合,合并后 xm 项系数是把 m有标号 的元素划分到两个集合(可以为空)(集合 有标号),方案数相乘再相加。这里的有无标号与原来的 OGF 无关。

[xm]A(x)B(x)=0imai1i!bmi1(mi)!=0imaibmim!i!(mi)!1m!=0imaibmi(mi)1m![xm/m!]A(x)B(x)=0imaibmi(mi)

k 个 EGF 的卷积:卷出 多项式系数。合并多个集合,合并后 xm 项系数是把 m有标号 的元素划分到多个集合(可以为空)(集合 有标号),方案数相乘再相加。这里的有无标号与原来的 EGF 无关。

[xm/m!]i=1kFk(x)=a1,a2,,ak,ai0,ai=m(ma1,a2,,ak)i=1kfi,ai

证明类似两个 EGF 的卷积,[也可以直接重复两个 EGF 卷的过程]。

exp

exp(F(x))=m0[F(x)]mm!

exp 之后的 xk/k! 项系数表示把 k有标号 的元素划分到任意多个(可以为 1非空([因为 exp[x0/0!]F(x)=0])集合,集合 无标号(因为除以了 m! 即划分成的集合数的阶乘),方案数相乘再相加。这里的有无标号与原来的 EGF 无关。

exp 之后的 x0/0! 项系数我还不懂。

ln

exp 反过来。例:统计某种连通图,不好维护连通性,于是直接统计这种图(不管连通性),用 EGF 表示;不连通的图可以认为是划分成若干个连通图,就相当于连通图的 EGF 的 exp,于是对不管连通性的图的 EGF 求 ln 即可。(?)

有标号非空集合

m0[F(x)]m=11F(x)

和 EGF 的 exp 不同在没有除以 m!,也就是说集合有标号。

但请注意划分成的集合仍然不能有空集,因为如果有空集方案数就会变成无穷大。

它的 xk/k! 项系数表示把 k有标号 的元素划分到任意多个 非空 集合,集合 有标号,方案数相乘再相加。这里的有无标号与原来的 EGF 无关。

集合有无标号转化

集合有标号 无标号:除以集合数的阶乘。

集合无标号 有标号:乘以集合数的阶乘。

EGF 的应用

EGF 和斯特林数有异曲同工之妙,都能用于集合划分相关问题(元素有标号),可以认为是算 “单体”拼出“多聚体”的方案数(单体内部的方案数也可以考虑)。不同点在于 EGF 把很多东西放在一起处理,而且“单体”的方案数更灵活。

EGF 主要解决 有标号的图 的计数问题(from 指数生成函数学习笔记&做题记录 - houzhiyuan - 博客园),常常和 连通性 相关。例如:

  • 有标号无根树森林计数。(无根树 森林)
  • 有标号有根树森林计数。(可以不用 EGF,有更直接的式子)
  • 有标号简单无向连通图计数。(简单无向图 简单无向连通图)
  • 有标号弱连通 DAG 计数。(DAG 弱连通 DAG)
  • 有标号二分图计数。(?????)
  • 有标号强连通竞赛图计数。(?????)

另一道题([贝尔数]):P5748 集合划分计数 - 洛谷 | 计算机科学教育新生态

PGF

  • 离散随机变量 X 的 PGF 为 F(z)=i0P(X=i)zi

    • 可以认为是 ai=P(X=i) 这个序列的 OGF。本质是有特殊性质的 OGF。
  • 用于求解概率、期望相关问题,[具体方法中带 OGF 的影子]。

    • 概率生成函数在一方面提供了一种刻画概率相关模型的工具,另一方面比较形式化地总结了一类概率问题的一般性思路。

  • 核心思路:列出 PGF 或其导数的方程,代入 z=1 解出得到答案。(原因见性质)

PGF 的一些性质

F(1)=i0P(X=i)=1F(1)=i0P(X=i)i1i1=E(X)F(k)(1)=E(Xk),k0F(1)+F(1)(F(1))2=E(x2+x)[E(x)]2=E(x2)[E(x)]2=σ2(x)

PGF 的例题

[P4548 CTSC2006] 歌唱王国 - 洛谷 | 计算机科学教育新生态.

简要题意和题解先咕咕咕了。

DGF

  • 序列 f 的 DGF 为 F(x)=i1fiix
    • 如果 f 是积性函数,那么其 DGF 可以由质数幂处的取值表示(拼出每一项):F(x)=pPi0fpipix。(?)(fi=0 也考虑?)
    • 如果 f 是完全积性函数,那么其 DGF 可以由质数处的取值表示(拼出每一项):F(x)=pPi0fpipix=pPi0(fppx)i=pP11fppx。(?)
  • DGF 和贝尔级数关系紧密,DGF 和贝尔级数都和狄利克雷卷积关系紧密。
  • DGF 提供了一种分析狄利克雷卷积的方法,常用于积性函数相关的推导。
  • 把函数用 ζ 表示,简洁、直观、统一,易于分析,简化了推导过程,使推导过程更为直观。

积性函数的 DGF 的形式变化

重要:黎曼 ζ 函数 ζ(x)=i11ix=pP11px

(1). ϵ.

F(x)=1

(2). I. 是完全积性函数.

ζ(x)=pPi01pix=pP11px

(3). 莫比乌斯函数 μ. 初现端倪(用 ζ 表示).

F(x)=pP(11px)=pP(1px)=1ζ(x)

(4). 刘维尔函数 λ. 是完全积性函数.

F(x)=pPi0(1)ipix=pPi0(1px)i=pP111px=pP11+px=pP(1px)(1+px)(1px)=pP(1px)(1p2x)=ζ(2x)ζ(x)

(5). μ2(点积). 或 |μ|.

F(x)=pP(1+1px)=pP(1+px)(1px)(1px)=pP1p2x1px=ζ(x)ζ(2x)

(6). idk. 可以用最开始的 DGF 式子哦.

F(x)=i1ikix=i11ixk=ζ(xk)

(7). 欧拉函数 φ.

F(x)=pP(1+i1pi1(p1)pix)G(x)=1+i1pi1(p1)pix=1+p1px+p2pp2x+p3p2p3xG(x)(ppxG(x)1px)=1(1ppx)G(x)=11pxG(x)=11px1ppx=1px1p(x1)F(x)=ζ(x1)ζ(x)

还有一种推的方法:

F(x)=pP(1+i1pipi1pix)=pP(1+i1piixi1pi1ix)i1piixi1pi1ix

(8). σk(n)=dndk.

F(x)=ζ(xk)ζ(x)

证明:

F(x)=pPi0σk(pi)pix=pPi0j=0ipjkpixS=j=0i(pj)kSpkS=1pk(i+1)S=1pk(i+1)1pkF(x)=pPi0Spix=pP(11pki01pk(i+1)pix)i01pk(i+1)pix=i01pix+i01pk(i+1)pixG(x)=i01pix,H(x)=i0pk(i+1)pixG(x)pxG(x)=1G(x)=11pxH(x)pkxH(x)=pkH(x)=pk1pkxF(x)=pP11pk(G(x)H(x))=pP11pk(11pxpk1pkx)=pP(1pkx)pk(1px)(1pk)(1px)(1pkx)=pP1(1px)(1pkx)=ζ(x)ζ(xk)

kimi 好像给出了一种更妙的证明,但我没看懂……

在上面的式子中,(2)(3) 是一对,(4)(5) 是一对。好磕!

方法总结

三种式子:用 DGF 的定义式、用积性函数的式子、用完全积性函数的式子。

  • 用 DGF 的定义式:整体法(换元法)。(涉及平移(ζ(xk),F(xk))的时候用).

  • 用另外两种式子( 枚举质数):

    • 里面化为封闭形式。

      • 利用与求 OGF 封闭形式类似的方法,平移后相减得到常数项,解方程解出封闭形式。
      • 可以拆成若干部分,分别求封闭形式,再加 / 减起来。
    • ζ 的形式。

      • 分式上下同乘,再用平方差公式。
      • 整体法(换元法)。

也可以直接用 狄利克雷卷积相关结论

DGF 的意义

加减:?

卷积

DGF 的卷积是原序列的狄利克雷卷积的 DGF。

可以利用这一点证明一些并不显然的狄利克雷卷积:

ζ(x1)ζ(x)ζ(x)=ζ(x1)φI=id.

ζ(x1)ζ(x)[ζ(x)]2=ζ(x1)ζ(x)φd=σ. 其中 dσ0σσ1.

单位元

ϵ 是狄利克雷卷积的单位元(而 I 并不是),ϵ 的 DGF(1)是 DGF 卷积的单位元。

乘法逆

这里只讨论积性函数。

DGF 的乘法逆是原函数在狄利克雷卷积下的逆元。

平移

F(xk)=i1f(i)ixk=i1ikf(i)ixG(x)=F(xk),g(n)=nkf(n)

F(xk) 相当于 f(x) 点积一个完全积性函数 idk。如果 fn 是积性函数,则 f(n)=nkf(n) 也是积性函数。

求导、积分、对数(ln)、指数(exp

咕咕咕。

DGF 的应用

参考资料

OI-Wiki.

zhr 学长的课件.

kimi.

多项式计数杂谈 - 洛谷专栏.

指数生成函数学习笔记&做题记录 - houzhiyuan - 博客园.

概率生成函数(PGF)简记 - Aphrosia - 博客园.

概率生成函数学习笔记 - bztMinamoto - 博客园.

狄利克雷生成函数 - OI Wiki.

狄利克雷生成函数浅谈 - 洛谷专栏.

狄利克雷生成函数 学习笔记 - 洛谷专栏.

DGF - ShanLunjiaJian's Blog.

狄利克雷卷积及常见函数与莫比乌斯反演 - Liquefyx - 博客园.

高等数学(九)泰勒展开式 - 知乎.

2025.1.23

2025.1.24

posted @   huangkxQwQ  阅读(34)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示