嘘~ 正在从服务器偷取页面 . . .

生成函数 学习笔记


生成函数 学习笔记

这里涉及的记号比较多,建议查阅 博客符号&记号参照表

这篇文章最早写于 2022年9月25日,但是当时基本没怎么理解生成函数。

本文的内容会不断添加更多东西,因为生成函数涉及的内容还是挺多的。

upd. 另外,可以参考 《组合数学》 §2.3 学习笔记(上)

生成函数简介

相信有很多初学者都很好奇,这个生成函数到底在干什么,为什么要搞这些东西。

至少我当时也没搞明白,特别是为什么它可以在式子没有意义的情况下还能算出正确答案。

因此本文会从生成函数最基础的部分出发,较为详细的解释什么是生成函数。


例1:有 $1$ 克、$2$ 克、$3$ 克、$4$ 克的砝码各一枚,能称出哪几种重量?每种重量各有几种可能方案?

我不打算讲传统解法,直接讲生成函数的解法

我们可以把 $1$ 克砝码看作 $(1 + x^1)$ ,前者表示不取,后者表示取一个 $1$ 克砝码

同理,我们可以用 $(1 + x^2)$ 表示不取或取一个 $2$ 克砝码,用 $(1 + x^3)$ 表示不取或取一个 $3$ 克砝码等

那么生成函数(实际上是普通生成函数)就是

可以发现,如果记次数为 $n$ ,系数为 $a_n$ ,则重量为 $n$ 的情况有 $a_n$ 种方案。

相信各位已经发现了,生成函数实际上利用了多项式相乘中的组合意义,利用多项式的形式来计算组合问题。

不过先不急着下太多结论,我们再看个例子。

例2:求用$1$分、$2$分、$3$分的邮票贴出不同数值的方案数,每种邮票的数量是无限多的。

直接给出生成函数

相信熟悉麦克劳林级数的同学已经想到了这个公式

如果代入符合条件的 $x^k$ 则有

那么因为生成函数只是一个「形式幂级数」(定义在后面讲)

我们可以理解为,这里的形式参数 $x$ 取什么值我们不关心,只要它不影响我们计算答案就可以

进一步地讲,即使这个形式幂级数所对应的幂级数是不收敛的,我们依然可以进行运算

好那么我们直接将 $F(x)$ 化简即可得到

这个东西疑似有点过于复杂了(确信),但是我们可以通过广义二项式定理求出它的任意一项的系数。

不过这不是本题的目的,这里主要想告诉大家生成函数的“形式”究竟体现在哪里。


普通生成函数 OGF

普通生成函数(Ordinary Generating Function,OGF)

到这里我们就可以给出普通生成函数的定义了。

对于一个数列 $\{f_n\}$ ,定义它的普通生成函数 $F(x)$ 为以 $x$ 为未定元的一个形式幂级数,则

另一种易于理解的写法是这样的(数列为 $\{a_n\}$ )

基本运算

OGF 的运算很多都和多项式类似。

常见的OGF

下面这些常见的OGF通常可以用封闭形式代替级数形式

例题

洛谷P2000 拯救世界 一道比较基础的生成函数的题

指数生成函数 EGF

指数生成函数(exponential generating function,EGF)

有时我们发现 $\{a_n\}$ 的性质并不好,而 $\{\frac{a_n}{n!}\}$ 的生成函数性质很好。

那么我们不妨定义一种新的生成函数来解决这个问题。

定义 $A(x)$ 为数列 $\{a_0,a_1,\cdots,a_n\}$ 的指数函数,则

在一些资料上用 $A(x)$ 表示普通生成函数,并用 $\hat A(x)$ 表示指数生成函数。

EGF 的运算和 OGF 是相似的,我们只要把 $\frac{1}{i!}$ 看成系数的一部分,再按照 OGF 的运算法则做即可。

但是毕竟引入了阶乘,在一些运算上会显得更为独特和巧妙。

乘法(二项卷积)

设 $F(x),G(x)$ 为数列 $\{f_i\},\{g_i\}$ 的指数生成函数,则

数列 $\{h_n\}$ 称为 $\{f_n\}$ 和 $\{g_n\}$ 的二项卷积(Binomial Convolution)。

也就是说,$\{f_n\}$ 和 $\{g_n\}$ 的二项卷积等价于 $\{\frac{f_n}{n!}\}$ 和 $\{\frac{g_n}{n!}\}$ 的普通卷积

导数与积分

$A^{\prime}(x)$ 对应的数列为 $\{a_1,a_2,\cdots,a_n\}$ 。

也就是说,指数生成函数上的求导相当于普通生成函数的左移。同理,积分相当于右移。

例题

洛谷P2012 拯救世界2 一道比较基础的指数生成函数题

狄利克雷生成函数 DGF

狄利克雷生成函数(Dirichlet series generating function,DGF)

对于无穷序列 $f_1,f_2,\cdots$ 定义其狄利克雷生成函数为

如果序列 $f$ 满足积性,即 $\forall i,j,\gcd(i,j),f_{i\cdot j}=f_if_j$ ,那么其 DGF 可以由质数幂处的取值表示

对于两个序列 $f,g$ ,其 DGF 之积对应的是两者的狄利克雷卷积序列的 DGF:

常见积性函数的 DGF

DGF 最适合用于研究与积性函数的狄利克雷卷积相关的问题。因此首先我们要了解常见积性函数的 DGF。

1. 黎曼函数

序列 $[1,1,1,\cdots]$ 的 DGF 是 $\sum_{i\ge 1}\frac{1}{i^x} = \zeta(x)$ ,其中 $\zeta$ 即为黎曼函数。

由于其满足积性,因此我们可以得到 $[1,1,1,\cdots]$ 的 DGF 的另一种形式

2. 莫比乌斯函数

对于莫比乌斯函数 $\mu$ ,它的 DGF 定义为

容易发现 $\zeta(x) \tilde{M}(x)=1$ ,也就是说 $\tilde{M}(x)=\sum_{n \ge 1}\frac{\mu(n)}{i^x}=\frac{1}{\zeta(x)}$ ,这个公式很重要。

3. 欧拉函数

对于欧拉函数 $\varphi$ ,它的 DGF 定义为

因此有 $\tilde{\Phi}(x)=\frac{\zeta(x-1)}{\zeta(x)}$

4. 幂函数

对于函数 $I_k(n)=n^k$ ,它的 DGF 定义为

根据这些定义,容易推导出 $\varphi 1 = I$ ($$ 表示狄利克雷卷积),因为 $\tilde{\Phi}(x) \zeta(x)=\zeta(x-1)$ 。

5. 其他函数

对于约数幂函数 $\sigma_k(n)=\sum_{d \mid n} d^k$ ,它的 DGF 可以表示为狄利克雷卷积的形式

狄利克雷卷积(Dirichlet 卷积)

定义

对于两个数论函数 $f(x)$ 和 $g(x)$ ,它们的狄利克雷卷积定义为

上式可以简记为

狄利克雷卷积是数论函数的重要运算,数论函数的许多性质都是通过这个运算挖掘出来的。

上面我们提到了,狄利克雷卷积与狄利克雷生成函数 DGF 事实上密切相关

即对于两个序列 $f,g$ ,其狄利克雷生成函数之积,对应的是两者的狄利克雷卷积序列的狄利克雷生成函数

性质

交换律:$f g=g f$

结合律:$(fg)h=f(gh)$

分配律: $(f+g)h = f h + g * h$

等式的性质:$f=g$ 的重要条件是 $fh = gh$ ,其中数论函数 $h(x)$ 要满足 $h(1) \ne 0$ 。

单位元:单位函数 $\epsilon$ 是狄利克雷卷积运算中的单位元,即对于任何数论函数 $f$ 都有 $f * \epsilon = f$ 。

具体地,单位函数 $\epsilon(n) := [n=1]$ ,即 $n=1$ 时为 $1$ ,否则为 $0$ 。

狄利克雷卷积运算中的单位元不是常函数,但是在狄利克雷生成函数中等价于常数 $1$ 。

狄利克雷卷积运算中的数论函数常函数 $1$,在狄利克雷生成函数中等价于黎曼函数 $\zeta$​ 。

逆元:对于任何一个满足 $f(x) \ne 0$ 的数论函数,如果有另一个数论函数 $g(x)$ 满足 $f*g = \epsilon$ ,

则称 $g(x)$ 为 $f(x)$ 的逆元。由等式的性质可知,逆元是唯一的。

狄利克雷卷积运算中的逆元,在狄利克雷生成函数中相当于倒数运算。

容易构造出 $g(x)$ 的表达式

重要结论

结论1:两个积性函数的狄利克雷卷积也是积性函数。

证明:设两个积性函数为 $f(x) $和 $g(x)$ ,再记 $h = f*g$ 。

设 $\gcd(a,b) = 1$ ,则

所以

证毕。

结论2:积性函数的逆元也是积性函数

证明:设 $f*g = \epsilon$ ,并且不妨设 $f(1)=1$ 。考虑归纳法证明:

  • 若 $nm=1$ ,则 $g(nm)=g(1) = 1$ ,显然成立

  • 若 $nm > 1(\gcd(n,m) = 1)$ ,设现在对于所有的 $xy < nm(\gcd(x,y) = 1)$ 结论成立,则

    又因为 $\frac{n m}{a b}<n m$ ,所以有

综上可知,结论成立。$\square$

同时这也说明,数论函数的积性,在狄利克雷生成函数中的对应具有封闭性。

例子

最后一个就是 欧拉反演


参考文献&鸣谢

[0] 感谢 Roundgod 对我无数的帮助 Orz (upd. 尤其是提醒我不要超前点科技

[1] https://www.cnblogs.com/birchtree/p/11575252.html

[2] https://zhuanlan.zhihu.com/p/52817010

[3] https://blog.csdn.net/qq_41357771/article/details/83449481

[4] https://oiwiki.org/math/poly/dgf


文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录