生成函数学习笔记

· · 个人记录

生成函数学习笔记

一.牛顿二项式定理

定理

介绍生成函数前,先介绍一下牛顿二项式定理,这是我们将生成函数从封闭形式转化为形式幂级数的有力工具。

定义牛顿二项式系数

\binom{r}{n} = \left\{\begin{aligned} &0 &(n<0) \\ &1 &(n=0) \\ &\frac{r(r-1)\cdots(r-n+1)}{n!} &(n>0) \end{aligned} \right.

注意其中的 n\in \mathbb{Z} ,而 r\in \mathbb{R} ,所以牛顿二项式系数没有组合意义,当 r,n 均为非负整数时,\binom{r}{n} 在数值上等于 C_{r}^{n}

牛顿二项式定理

(x+y)^\alpha = \sum\limits_{n=0}^{\infty} \binom{\alpha}{n} x^n y^{\alpha - n}

其中 \alpha \in \mathbb{R} 。(一种可行的证明是使用泰勒级数将左式展开)

推论(常用结论)

  1. m 为正整数,n 为整数,则有

    \binom{-m}{n} = (-1)^{n} \binom{m+n-1}{n}
  2. m 为正整数,则有

    \begin{aligned} &(1+x)^m = \sum\limits_{n=0}^{\infty}(-1)^n\binom{m+n-1}{n}x^n \\ &(1-x)^m = \sum\limits_{n=0}^{\infty}\binom{m+n-1}{n}x^n \end{aligned}
  3. \alpha = \frac{1}{2} ,则有

    (1+x)^{\frac{1}{2}} = 1 + \sum\limits_{n=1}^{\infty} \frac{(-1)^{n-1}}{2^{2n-1}n}\binom{2n-2}{n-1}x^n

二.普通生成函数

定义

普通生成函数,简称生成函数。

设序列 \{a_n\} ,构造其形式幂级数

G(x) = a_0x_0 + a_1x_1 + \cdots + a_nx_n +\cdots

G(x) 为序列 \{a_n\} 的生成函数。其中 \{a_n\} 可以是有限项的序列,也可以是无穷项的序列。

基本运算

封闭形式

a_n = 1 ,则 \{a_n\} 的生成函数为

G(x) = \sum\limits_{i=0}^{\infty} x^n

因为

1+G(x)x = G(x)

所以

G(x) = \frac{1}{1-x}

这就是序列 \{a_n\} 的生成函数的封闭形式。

亿些小练习:

  1. 求序列 a_n = p^n 的生成函数的封闭形式,p 为常数。

  2. 求序列 a_n = \binom{m}{n} 的生成函数的封闭形式,m 为常数。

  3. 求序列 a_n = n+1 的生成函数的封闭形式 。

  4. 求序列 a_n = (-1)^n 的生成函数的封闭形式。

  5. 求序列 a_n = (-1)^n(n+1) 的生成函数的封闭形式。

答案:

  1. G(x) = \frac{1}{1-px}
  2. G(x) = (1+x)^m
  3. G(x) = \frac{1}{(1-x)^2}
  4. G(x) = \frac{1}{1+x}
  5. G(x) = \frac{1}{(1+x)^2}

应用 1 求数列通项公式

斐波那契数列通项公式的求解:点这里 。

卡特兰数数列通项公式的求解:点这里 。

使用生成函数求解给定递推式序列的通项式的一般方法:

  1. 设出 \{a_n\} 的生成函数 G(x)
  2. 利用递推方程的依赖关系,导出关于生成函数 G(x) 的方程。
  3. 求解方程,得到关于 G(x) 的函数表达式。
  4. G(x) 展开成幂级数的形式,x^n 项的系数即为 a_n

应用 2 求解组合问题的方案数

三.指数生成函数

定义

设长度为 k 的序列 \{a_n\} ,称

G_e(x) = \sum\limits_{n=0}^{k} a_n \frac{x^n}{n!}

为序列 \{a_n\} 的指数生成函数。

基本运算

与普通生成函数的运算相同。

封闭形式

P(m,n) = \frac{m!}{(m-n)!} ,则当 m 为常数时,P(m,n) 的指数生成函数为

G_e(x) = \sum\limits_{n=0}^{\infty} \frac{m!}{(m-n)!} \frac{x^n}{n!} = \sum\limits_{n=0}^{\infty} C(m,n)x^n = (1+x)^m

P(m,n) 的指数生成函数的封闭形式就是 (1+x)^m

a_n = 1 ,则序列 \{a_n\} 的指数生成函数为

G_e(x) = \sum\limits_{n=0}^{\infty} \frac{x^n}{n!} = e^x

上式左边其实就是 e^x 的泰勒展开,所以序列 a_n = 1 的指数生成函数的封闭形式就是 e^x

还有一个比较重要的结论是 e^{\lambda x} 展开形式为

G_e(x) = \sum\limits_{n=0}^{\infty} \lambda^{n} \frac{x^n}{n!}

应用