生成函数生成果,生成数下你和我。
生成函数太美妙,蒟蒻一看被难倒。


生成函数

概念

*度娘定义:

生成函数又叫 母函数 ( 个人不太喜欢这个叫法 ),是组合数学中尤其是计数方面的一个重要理论和工具。
生成函数分为 普通型生成函数指数型生成函数 两种,前者使用较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。

生成函数的应用简单来说在于研究未知(通项)数列规律,用这种方法在给出递推式的情况下求出数列的通项,生成函数是推导 数列的通项公式方法之一,另外组合数学中的 数也可以通过生成函数的方法得到。

另外生成函数也广泛应用于编程与算法设计、分析上,运用这种数学方法往往对程序效率与速度有很大改进。

普通型生成函数

定义:

对于任意数列 用下面这个函数来表示这个数列:
这个函数就叫做数列的 生成函数 ( ) 。

指数型生成函数

定义:

对于任意数列 用下面这个函数来表示这个数列:

在研究生成函数时,我们都假设级数收敛,因为生成函数中的 没有实际意义。

例子

我们先来考虑这样的一个问题:一个班上有四个 ,现在要从其中选出 个做自己的老婆,请问有多少种选法? 答案很简单, 对吧。也就是说从 开始, 问题的答案分别是 那么它的生成函数应该为 。诶,这不就是二项式展开吗? 于是就有

这里有个广义的推论: ,其中,广义的组合数 实数
举个例子:
这个推论就是经典的 牛顿二项式定理

接下来我们再来考虑一个更复杂的生成函数: 求出 有多少个非负整数解。这道题在 的课件中有详细解答过。

把每组解的每个数加 ,就变成了 的正整数解的个数了,这时候我们就可以用 隔板法 来做: 把 个东西排成一排,在 个间隔中插入 个 “隔板” ,所以答案就是 ,则它关于 的生成函数是

推导:
按照牛顿二项式展开后可以得到 的系数恰好是
因为展开后第n+1项:

经典题目

1、求 Fibonacci 通项公式


在接下来的讲解之前,我们还需要知道一个公式:

这个公式在之前我已经证明过了,再证一遍:
$$
证毕。


已知 递推数列为:$g(x)g(x)xg(x)=\frac x{1-x-x^2}$ 。

由于这个式子不是之前我们见过的 成等比关系的式子,再根据这是个分式,于是我们可以把它裂项成等比数列无穷级数求和的式子,将下半部分因式分解可得:$$哎呦卧槽,这可把我码的累死了!!!