生成函数与形式幂级数

前言

关于生成函数有很多概念模糊的地方,比如生成函数的乘法是怎么定义的,比如乘法可以换序吗?比如为什么可以把多项式变成对数函数?为什么又可以使用泰勒展开?

前置知识

代数系统,群论

环是一个具有两个二元运算的代数系统。环<R,+,>满足

  • <R,+>构成交换群, 即+满足封闭性、结合律、单位元、逆元、交换律

  • <R,>构成半群, 即满足封闭性、结合律、单位元

  • +有分配率,即a(b+c)=ab+ac

交换环

运算满足交换律时,这个环构成了交换环。

幂级数

每一项中都包含未知量x的无穷级数,是数学分析领域的概念,往往研究他的极限。

形式幂级数

每一项中都包含未知量x的无穷多项式,是组合数学领域的概念,往往用它研究计数问题。

概念搭建

由于笔者并未找到合适的相关资料,于是准备自己搭建一个形式幂级数体系。首先我们需要定义什么是形式幂级数。

数论幂函数

形如f(x)=xaaN0的函数, 即指数是非负整数的幂函数。

数论多项式

定义数论多项式是多个数论幂函数的线性组合的和。

无穷数论多项式定义

定义有无穷项的数论多项式为无穷数论多项式。后面为了简称,也写作无穷多项式。

为了方便表示无穷,我们可以使用累和的形式来定义一个无穷数论多项式,即 f=i=0fixi 其中fi是一个关于i的函数。

定义所有无穷多项式的集合为R

无穷多项式的+运算

fg是一个无穷多项式,定义h=f+g=i=0(fi+gi)xi

很明显<R,+>满足封闭性、结合律、交换律

单位元是e=i=0eixi满足i,ei=0

f的逆元是i=0fixi

所以<R,+>构成交换群。

无穷多项式的运算

fg是一个无穷多项式,定义h=fg=i=0a=0ifagiaxi

很明显<R,>满足封闭性、结合律

所以<R,+>构成半群。

单位元是e=i=0eixi满足ei={1,if i is 00,if i is not 0

无穷多项式环

满足分配率(懒得证明了),<,+,>是环

泰勒表示法(核武器)

根据无穷多项式的定义,只要确定了函数fi, 无穷多项式就唯一确定了,受到泰勒展开的启发,我们给出新的表示法,函数F(x)的i阶导函数F(i)(x)的在点0处的值,可以构成一个序列,我们令fi=F(i)(0)i!,惊讶的发现我们可以通过给定函数F确定一个无穷多项式f

推论1

泰勒表示法FG的和就是f+g, 证明过程很简单

如果H=F+G ,则H(i)(0)=F(i)(0)+G(i)(0), 即hi=fi+gi

推论2

泰勒表示法FG的积就是fg, 证明过程很简单

如果H=FG, 则H(i)(0)=j=0iCjiF(j)(0)G(ij)(0), 即hi=j=0ifjgij,这与运算的定义完全一样。

总结

我们直接将所有无穷多项式替换为泰勒表示法,然后乘起来,最后使用泰勒展开进行还原,不会对最终答案产生影响。

生成函数

普通型生成函数

n个没有标号的球,你要把它们分成m个有标号的盒子里面,盒子允许空

f=1+x+x2+x3+...

然后fn的n次项系数就是答案。

先转为泰勒表示法F=11x, 然后做幂,Fm=(1x)m, 最后泰勒展开,得到n次项系数为Cm+n1m1

一个重要的结论

Cab=(1)bCa+b1b