母函数详解(Generating function)

来源:互联网 发布:淘宝网店名字怎么取 编辑:程序博客网 时间:2024/06/01 08:33

母函数,顾名思义,就是母亲函数。那就说明在这个函数里面还有个儿子,即子函数。说白了,就是子函数可以看作是母函数的一个子集。

那么如何把这些子函数用一个母函数来表示呢?(通项公式)解决了这个问题,后面的问题就容易多了。

也可以理解为:母函数就是一个多项式前面的系数的一个整体的集合,子函数就是这个多项式中每一项前面的系数。

首先,先看这个多项式:

由此可以看出:

x2项的系数a1a2+a1a3+...+an-1an中包含n个元素中取2个元素的全体组合

同理:x3项的系数包含了从n个元素中取3个元素的全体组合

以此类推。

若令a1=a2=...an=1,则进一步得到

母函数定义:

对于序列a0,a1,a2...构造一函数:

称函数G(x)是序列a0,a1,a2...的母函数。

引用HDU的例题:

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

如何解决这个问题呢?考虑构造母函数。
我们用x表示砝码,x的指数表示砝码的重量,则:
 1个1克的砝码可以用函数1+x^1表示,
 1个2克的砝码可以用函数1+x^2表示,
 1个3克的砝码可以用函数1+x^3表示,
 1个4克的砝码可以用函数1+x^4表示,

为什么1个3克的砝码用1+x^3来表示呢?1可以看成x^0,即质量为0的砝码,这样3克砝码的就有两种状态(不放x^0 或者 放x^3)。

几种砝码的组合可以称重的情况,可以用以上几个函数的乘积表示:

(1+x)(1+x2)(1+x3)(1+x4)
=(1+x+x^2+x^3)(1+x^3+x^4+x^7)
=1+x^1+x^2+2x^3+2x^4+2x^5+2x^6+2x^7+x^8+x^9+x^10

从上面的函数知道:可称出从1克到10克,系数便是方案数。
例如右端有2x^5 项,即称出5克的方案有2:5=3+2=4+1;同样,6=1+2+3=4+2;10=1+2+3+4。
故称出6克的方案有2,称出10克的方案有1。 

例2:求用1分、2分、3分的邮票贴出不同数值的方案数:

注意~例1是一种一枚,而此题邮票是允许重复的,故母函数是:

以展开后的x4为例,其系数为4,即4拆分成1、2、3之和的拆分数为4。

即 :4=1+1+1+1=1+1+2=1+3=2+2

这里引出两个概念:“整数拆分”和“拆分数”

所谓整数拆分即把整数分解成若干整数的和(相当于把n个无区别的球放到n个无标志的盒子,盒子允许空,也允许放多于一个球)。
整数拆分成若干整数的和,办法不一,不同拆分法的总数叫做拆分数。

原创粉丝点击