母函数(generating function)总结

母函数总结

生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式)。

对于任意数列 a 1 , a 1 , a 2 . . . a n a_1,a_1,a_2...a_n a1,a1,a2...an即用如下方法与一个函数联系起来:
G ( x ) = a 0 + a 1 x + a 2 x 2 + . . . + a n x n G(x) = a_0 + a_1x+a_2x^2+...+a_nx^n G(x)=a0+a1x+a2x2+...+anxn
则称 G ( x ) G(x) G(x)是数列的生成函数 ( g e n e r a t i n g   f u n c t i o n ) (generating\ function) (generating function)

一般形式为
G ( a n ; x ) = ∑ n = 0 ∞ a n x n G(a_n;x) = \sum_{n=0}^\infty a_nx^n G(an;x)=n=0anxn
序列 ( a n ) n ∈ N (a_n)_{n\in N} (an)nN的指数型母函数为:
E G ( a n ; x ) = ∑ n = 0 ∞ a n x n n ! EG(a_n;x) = \sum_{n=0}^\infty a_n \frac{x^n}{n!} EG(an;x)=n=0ann!xn

组合问题

1.若有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?各有几种可能方案?
G ( x ) = ( 1 + x ) ( 1 + x 2 ) ( 1 + x 3 ) ( 1 + x 4 ) G ( x ) = 1 x 0 + 1 x 1 + 1 x 2 + 2 x 3 + 2 x 4 + 2 x 5 + 2 x 6 + 2 x 7 + 1 x 8 + 1 x 9 + 1 x 10 G(x) = (1+x)(1+x^2)(1+x^3)(1+x4) \\ G(x) = 1x^0+1x^1+1x^2+2x^3+2x^4+2x^5+2x^6+2x^7+1x^8+1x^9+1x^{10} G(x)=(1+x)(1+x2)(1+x3)(1+x4)G(x)=1x0+1x1+1x2+2x3+2x4+2x5+2x6+2x7+1x8+1x9+1x10
式子展看整理之后:每一项的指数就是可以称出的重量,系数就是该重量可以拼出的方案数。

重量为0克的有1种方案
重量为1克的有1种方案
重量为2克的有1种方案
重量为3克的有2种方案
重量为4克的有2种方案
重量为5克的有2种方案
重量为6克的有2种方案
重量为7克的有2种方案
重量为8克的有1种方案
重量为9克的有1种方案
重量为10克的有1种方案

2.求用1分、2分、3分的邮票贴出不同数值的方案数——因邮票允许重复,故母函数为:
G ( x ) = ( 1 + x + x 2 + x 3 + . . . ) ( 1 + x 2 + x 4 + x 6 + . . . ) ( 1 + x 3 + x 6 + x 9 + . . . ) G ( x ) = 1 x 0 + 3 x 1 + 6 x 2 + 10 x 3 + 15 x 4 + 21 x 5 + 28 x 6 + 36 x 7 + 45 x 8 + 55 x 9 + 66 x 10 + 78 x 11 + 91 x 12 + 105 x 13 + 120 x 14 + 136 x 15 + 153 x 16 + 171 x 17 + 190 x 18 + 210 x 19 + 231 x 20 + 253 x 21 + 276 x 22 + 300 x 23 + 325 x 24 + . . . G(x) = (1+x+x^2+x^3+...)(1+x^2+x^4+x^6+...)(1+x^3+x^6+x^9+...) \\ G(x) = 1x^{0}+3x^{1}+6x^{2}+10x^{3}+15x^{4}+21x^{5}+28x^{6}+36x^{7}+45x^{8}+55x^{9}+66x^{10}+78x^{11}+91x^{12}+105x^{13}\\ +120x^{14}+136x^{15}+153x^{16}+171x^{17}+190x^{18}+210x^{19}+231x^{20}+253x^{21}+276x^{22}+300x^{23}+325x^{24}+... G(x)=(1+x+x2+x3+...)(1+x2+x4+x6+...)(1+x3+x6+x9+...)G(x)=1x0+3x1+6x2+10x3+15x4+21x5+28x6+36x7+45x8+55x9+66x10+78x11+91x12+105x13+120x14+136x15+153x16+171x17+190x18+210x19+231x20+253x21+276x22+300x23+325x24+...
**3.**若有1克砝码3枚、2克砝码4枚、4克砝码2枚,问能称出哪几种重量?各有几种方案?

母函数为:
G ( x ) = ( 1 + x + x 2 + x 3 ) ( 1 + x 2 + x 4 + x 6 + x 8 ) ( 1 + x 4 + x 8 ) G(x) = (1+x+x^2+x^3)(1+x^2+x^4+x^6+x^8)(1+x^4+x^8) G(x)=(1+x+x2+x3)(1+x2+x4+x6+x8)(1+x4+x8)
4.整数拆分,就是把整数分解成若干整数的和,整数n拆分成1,2,3,…,m的和,求母函数。
G ( x ) = ( 1 + x + x 1 + x 2 + x 3 + . . . ) ( 1 + x 2 + x 4 + x 6 + x 8 + . . . ) ( 1 + x 3 + x 6 + x 9 + . . . ) . . . ( 1 + x m + x 2 m + . . . ) G(x) = (1+x+x^1+x^2+x^3+...)(1+x^2+x^4+x^6+x^8+...)(1+x^3+x^6+x^9+...)...(1+x^m+x^{2m}+...) G(x)=(1+x+x1+x2+x3+...)(1+x2+x4+x6+x8+...)(1+x3+x6+x9+...)...(1+xm+x2m+...)
4.1如若上例中m至少出现一次,其母函数又如何?

m必须要选,那么就将 x 0 m x^{0m} x0m项变为 0 0 0
G ( x ) = ( 1 + x + x 1 + x 2 + x 3 + . . . ) ( 1 + x 2 + x 4 + x 6 + x 8 + . . . ) ( 1 + x 3 + x 6 + x 9 + . . . ) . . . ( x m + x 2 m + . . . ) G(x) = (1+x+x^1+x^2+x^3+...)(1+x^2+x^4+x^6+x^8+...)(1+x^3+x^6+x^9+...)...(x^m+x^{2m}+...) G(x)=(1+x+x1+x2+x3+...)(1+x2+x4+x6+x8+...)(1+x3+x6+x9+...)...(xm+x2m+...)

排列问题(指数型母函数)

**1.**考虑n个元素组成的多重集,其中 a i a_i ai重复出现了 n 1 n_1 n1次, a 2 a_2 a2重复出现了 n 2 n_2 n2次, . . . ... ... a k a_k ak重复出现了 n k n_k nk次, n = n 1 + n 2 + . . + n k n=n_1+n_2+..+n_k n=n1+n2+..+nk。现在从中取 r r r个进行排列,求不同的排列数。

r = = n r==n r==n,那么就是n个元素的全排列。
n ! n 1 ! n 2 ! n 3 ! . . . n k ! \frac{n!}{n_1!n_2!n_3!...n_k!} n1!n2!n3!...nk!n!
母函数为:
G e ( x ) = ( 1 + x 1 ! + x 2 2 ! + . . . x n 1 n 1 ! ) ( 1 + x 1 ! + x 2 2 ! + . . . x n 2 n 2 ! ) ( 1 + x 1 ! + x 2 2 ! + . . . x n 3 n 3 ! ) . . . ( 1 + x 1 ! + x 2 2 ! + . . . x n k n k ! ) G_e(x) = (1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_1}}{n_1!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_2}}{n_2!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_3}}{n_3!})...(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_k}}{n_k!}) Ge(x)=(1+1!x+2!x2+...n1!xn1)(1+1!x+2!x2+...n2!xn2)(1+1!x+2!x2+...n3!xn3)...(1+1!x+2!x2+...nk!xnk)

**2.**有 n n n种物品,已知每种物品的数量。要求从中选出 m m m件物品的排列数。例如有两种物品 A A A, B B B,并且数量都是 1 1 1,从中选 2 2 2件物品,则排列有 " A B " "AB" "AB", " B A " "BA" "BA"两种。
每组输入数据有两行,第一行是二个数 k k k, m m m ( 1 < = m , k < = 10 ) (1<=m, k<=10) (1<=m,k<=10),含义如上。第二行有 k k k个数,分别表示这 k k k件物品的数量。对应每组数据,请输出所有可能的排列数.

母函数:
n i 表 示 第 i 个 物 品 的 数 量 G e ( x ) = ( 1 + x 1 ! + x 2 2 ! + . . . x n 1 n 1 ! ) ( 1 + x 1 ! + x 2 2 ! + . . . x n 2 n 2 ! ) ( 1 + x 1 ! + x 2 2 ! + . . . x n 3 n 3 ! ) . . . ( 1 + x 1 ! + x 2 2 ! + . . . x n k n k ! ) n_i表示第i个物品的数量\\ G_e(x) = (1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_1}}{n_1!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_2}}{n_2!})(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_3}}{n_3!})...(1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n_k}}{n_k!}) niiGe(x)=(1+1!x+2!x2+...n1!xn1)(1+1!x+2!x2+...n2!xn2)(1+1!x+2!x2+...n3!xn3)...(1+1!x+2!x2+...nk!xnk)
指数为 m m m的项的系数为 V a l u e m ! x m \frac{Value}{m!}x^m m!Valuexm,Value即为所求.

**3.**现在有一长度为 N N N的字符串,满足以下条件:

(1)字符串仅由 A , B , C , D A,B,C,D A,B,C,D四个字母组成;

(2) A A A出现偶数次(也可以不出现);

(3) C C C出现偶数次(也可以不出现);
比如:当 N = 2 N=2 N=2时,所有满足条件的字符串有如下 6 6 6个: B B BB BB, B D BD BD, D B DB DB, D D DD DD, A A AA AA, C C CC CC.请计算满足条件的字符串个数,由于数据非常大,给出最后两位数字即可.每组输入的第一行是一个整数 T T T,表示测试实例的个数,下面是T行数据,每行一个整数 N ( 1 < = N < 2 6 4 ) N(1<=N<2^64) N(1<=N<264),当 T = 0 T=0 T=0时结束.

母函数:
G e ( x ) = A B C D B = D = ( 1 + x 1 ! + x 2 2 ! + . . . x n n ! ) A = C = ( 1 + x 2 2 ! + x 4 4 ! + . . . x n n ! ) G_e(x) = ABCD \\ \\ B = D = (1+\frac{x}{1!}+\frac{x^2}{2!}+...\frac{x^{n}}{n!}) \\ A = C = (1+\frac{x^2}{2!}+\frac{x^4}{4!}+...\frac{x^{n}}{n!}) Ge(x)=ABCDB=D=(1+1!x+2!x2+...n!xn)A=C=(1+2!x2+4!x4+...n!xn)


已 知 e x = 1 + x 1 ! + x 2 2 ! + x 3 3 ! + . . . e − x = 1 − x 1 ! + x 2 2 ! − x 3 3 ! + . . . 已知e^x = 1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+... \\ e^{-x} = 1-\frac{x}{1!}+\frac{x^2}{2!}-\frac{x^3}{3!}+... ex=1+1!x+2!x2+3!x3+...ex=11!x+2!x23!x3+...


那么
B = D = e x B = D = e^x B=D=ex

A = C = e x + e − x 2 A = C = \frac{e^x+e^{-x}}{2} A=C=2ex+ex


G e ( x ) = ( e x + e − x 2 ) 2 ( e x ) 2 = ( 1 4 ) ( e x + e − x ) 2 e 2 x = ( 1 4 ) ( e 2 x + e − 2 x + 2 e x e − x ) e 2 x = ( 1 4 ) ( e 2 x + e − 2 x + 2 ) e 2 x = ( 1 4 ) ( e 4 x + 1 + 2 e 2 x ) = ( 1 4 ) { ( 1 + 4 x 1 ! + ( 4 x ) 2 2 ! + . . . ) + 1 + 2 ( 1 + 2 x 1 ! + ( 2 x ) 2 2 ! + . . . ) } G_e(x) = (\frac{e^x+e^{-x}}{2})^2(e^x)^2 \\ = (\frac{1}{4})(e^x+e^{-x})^2e^{2x} \\ = (\frac{1}{4})(e^{2x}+e^{-2x}+2e^xe^{-x})e^{2x} \\ = (\frac{1}{4})(e^{2x}+e^{-2x}+2)e^{2x} \\ = (\frac{1}{4})(e^{4x}+1+2e^{2x}) \\ = (\frac{1}{4})\{(1+\frac{4x}{1!}+\frac{(4x)^2}{2!}+...)+1+2(1+\frac{2x}{1!}+\frac{(2x)^2}{2!}+...) \} \\ Ge(x)=(2ex+ex)2(ex)2=(41)(ex+ex)2e2x=(41)(e2x+e2x+2exex)e2x=(41)(e2x+e2x+2)e2x=(41)(e4x+1+2e2x)=(41){(1+1!4x+2!(4x)2+...)+1+2(1+1!2x+2!(2x)2+...)}


x n x^n xn项为:
( 1 4 ) [ ( 4 x ) n n ! + 2 ( 2 x ) n n ! ] = 4 n x n + 2 n + 1 x n 4 n ! = ( 4 n − 1 + 2 n − 1 ) x n n ! (\frac{1}{4})[\frac{(4x)^n}{n!}+2\frac{(2x)^n}{n!}] \\ = \frac{4^nx^n+2^{n+1}x^n}{4n!} \\ = (4^{n-1}+2^{n-1})\frac{x^n}{n!} (41)[n!(4x)n+2n!(2x)n]=4n!4nxn+2n+1xn=(4n1+2n1)n!xn
小括号内即为所求,使用快速幂得出结果即可.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值