生成函数(母函数)总结
Posted heyujun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成函数(母函数)总结相关的知识,希望对你有一定的参考价值。
生成函数(母函数)总结
普通型生成函数((OGF))
定义
对于一个序列(a_0,a_1,a_2,a_3...),定义(G(x)=a_0+a_1x^1+a_2x^2+a_3x^3+...)为序列的母函数。
然后。。。没了???没了。
应用
一些常见的生成函数((nin N^+)):
(frac {1}{1-x}=1+x+x^2+x^3+...)
(frac {1}{(1-x)^2}=frac {1}{1-x}*frac {1}{1-x}=1+2x+3x^2+...)
(frac {1}{(1-x)^n}=1+nx+frac {n(n+1)}{2!}x^2+frac {n(n+1)(n+2)}{3!}x^3+...)
一个定理
据说是母函数最重要的定理:
设从(n)元集合(S=lbrace a_1,a_2...a_n brace)中取出(k)个元素的组合是(b_k),
若限定元素(a_i)出现次数集合为(M_i(1leq ileq n)),
则该组合数序列的母函数为
[ prod_{i=1}^n(sum_{min M_i}x^m) ]
可以看出,它解决的主要是组合问题
(Eg1)
斐波那契数列通项。
(Sol:)
设斐波那契数列的母函数为
[ G(x)=0+1centerdot x^1+1centerdot x^2+2centerdot x^3+3centerdot x^4+... ]
乘一个(x)
[
G^prime(x)=0+1centerdot x^2+1centerdot x^3+2centerdot x^4+3centerdot x^5+...
]
两个东西减一下:
[
G(x)-G^prime(x)=0+0+1centerdot x^1+0centerdot x^2+1centerdot x^3+2centerdot x^5+...=x+x^2(0+1centerdot x^1+1centerdot x^2+...)\\]
发现上面的东西:
[
Leftrightarrow G(x)-G^prime(x)=x+x^2G(x)\\Leftrightarrow G(x)-xG(x)=x+x^2G(x)\\Leftrightarrow (x^2+x-1)G(x)=-x\\Rightarrow G(x)=frac {x}{1-x-x^2}
]
(ecause)
[1-x-x^2=-(x+frac{1+sqrt{5}}{2})(x+frac{1-sqrt{5}}{2})=(1-frac{1-sqrt{5}}{2}x)(1-frac{1+sqrt{5}}{2}x)]
( herefore)
[G(x)=frac 1{sqrt5}left(frac x{1-frac {1+sqrt5}{2}x}-frac x{1-frac {1-sqrt5}{2}x}
ight)]
再利用展开式(frac {1}{1-x}=1+x+x^2+x^3+...)
可得(G(x)=b_1x+b_2x^2+...)
解得
[
b_n=frac{sqrt 5}{5}left((frac{1+sqrt5}{2})^n-(frac{1-sqrt5}{2})^n
ight)
]
又(a_n=b_n),所以我们就求出来了。
是不是感觉很麻烦呢?了解一下这种方法
无缝植入
(Eg2)
求(n)位十进制数中出现偶数个(5)的数的个数。
(Sol:)
设(f_i)表示(i)位十进制数中出现偶数个(5)的数的个数,
(g_i)表示(i)位十进制数中出现奇数个(5)的数的个数。
则有
[egin{cases}
f_i=9f_{i-1}+g_{i-1}g_i=9g_{i-1}+f_{i-1}
end{cases}
ag 0
]
设序列(lbrace f_i
brace),(lbrace g_i
brace)的生成函数分别为:
(F(x)=f_1+f_2x+...+f_nx^n+... ag1)
(G(x)=g_1+g_2x+...+g_nx^n+... ag2)
然后:
((1))两边同乘(-9x):
(-9xF(x)=-9f_1x-9f_2x^2-9f_3x^3+... ag3)
((2))两边同乘(-x):
(-xG(x)=-g_1x-g_2x^2-g_3x^3... ag4)
((1)+(3)+(4):)
[
F(x)-9xF(x)-xG(x)=(f_1+f_2x+f_3x^3+...)+(-9f_1x-9f_2x^2-9f_3x^3-...)+(-g_1x-g_2x^2-g_3x^3-...)=(f_1+g_1x+g_2x^2+g_3x^3+...)+(-g_1x-g_2x^2-g_3x^3-...)=f_1=8\\]
(Leftrightarrow(1-9x)F(x)-xG(x)=8 ag5)
同理,设((6)=(2)*(-9x)),((7)=(1)*(-x))
则((6)+(7)+(2))得:
[
(1-9x)G(x)-xF(x)=g_1=1 ag8
]
由((5))、((8)):
[
F(x)=frac {(-71x+8)}{(1-8x)(1-10x)}G(x)=frac {(1-x)}{(1-8x)(1-10x)}
]
又
[
A(x)=frac{frac 7{1-8x}+frac 9{1-10x}}2=frac {sum_{n=0}^{infty}7*(8x)^n+sum_{n=0}^{infty}9*(10x)^n}2\\]
综上
[
herefore a_n=frac {7*8^{n-1}}2+frac {9*10^{n-1}}2
]
指数型母函数((EGF))
定义
指数型母函数由一下定理来描述:
从多重集合(M=lbraceinfty*a_1,infty*a_2,infty*a_3...infty*a_n brace)中选出(k)个元素的排列中,
若限定(a_i)出现次数为(M_i(1leq ileq n)),则该组合数序列的母函数为:
[ prod_{i=1}^n(sum_{min M_i}frac {x^m}{m!}) ]
我们发现,普通型母函数标志函数为(1,x,x^2...),而指数型母函数标志函数为(1,frac {x}{1!},frac {x^2}{2!}...)
它的意义是什么呢?
相当于我们在计算排列总数时一个元素(a_i)出现了多次,而实际上我们只能算进去一次,所以除去(i!)
这个玩意儿的使用过程中,会碰到奇怪的(e^x)及泰勒展开式:
(e^x=sum_{n=0}^{infty}frac {x^n}{n!}=1+x+frac{x^2}{2!}+frac{x^3}{3!}+...+frac{x^n}{n!}+...)
(e^{-x}=sum_{n=0}^{infty}(-1)^nfrac {x^n}{n!}=1-x+frac{x^2}{2!}-frac{x^3}{3!}+...+(-1)^nfrac{x^n}{n!}+...)
(frac {e^x+e^{-x}}2=sum_{n=0}^{infty}frac {x^{2n}}{2n!}=1+frac {x^2}{2!}+frac{x^4}{4!}+frac{x^6}{6!}+...+frac{x^{2n}}{2n!}+...)
(frac {e^x-e^{-x}}2=sum_{n=0}^{infty}frac {x^{2n+1}}{(2n+1)!}=1+frac {x^3}{3!}+frac{x^5}{5!}+frac{x^7}{7!}+...+frac{x^{2n+1}}{(2n+1)!}+...)
指数型母函数应化简成如下形式:
[
G_e(x)=b_0+b_1centerdot(frac x{1!})+b_2centerdot(frac {x^2}{2!})+b_3centerdot(frac {x^3}{3!})+...
]
这里只有(b_i)是我们需要的。
为什么?看栗子。
应用
(Eg1)
有三个数字(1),两个数字(6),一个数字(8),问能组成多少个四位数。
(Sol:)
实际上是多重集排列数问题,显然多重集(S=lbrace3x_1,2x_2,1x_3 brace)
构造指数型生成函数:
[
G_e(x)=(1+x+frac {x^2}{2!}+frac {x^3}{3!})(1+x+frac {x^2}{2!})(1+x)=1+3x+8frac{x^2}{2!}+19frac{x^3}{3!}+38frac{x^4}{4!}+60frac{x^5}{5!}+60frac{x^6}{6!}
]
( herefore Ans=38)
(Eg2)
求有(1,2,3,4)构成,且(1)出现(2-3)次,(2)最多出现(1)次,(4)出现偶数次的五位数。
(Sol:)
四个数分别对应的母函数:
- (I:) (frac {x^2}{2!}+frac {x^3}{3!})
- (II:) (1+frac {x}{1!})
- (III:) (1+frac {x}{1!}+frac {x^2}{2!}+frac {x^3}{3!}+...)
- (IIII:) (1+frac {x^2}{2!}+frac {x^4}{4!}+frac {x^6}{6!}+...)
所以有:
[
G(x)=(frac {x^2}{2!}+frac {x^3}{3!})(1+frac {x}{1!})(1+frac {x}{1!}+frac {x^2}{2!}+frac {x^3}{3!}+...)(1+frac {x^2}{2!}+frac {x^4}{4!}+frac {x^6}{6!}+...)= (frac16*x^2*(3+4x+x^2))*e^x*frac {e^x+e^{-x}}{2}= frac1{12}*x^2*(3+4x+x^2)*(e^{2x}+1)
]
最后展开(e^{2x}),再配一下系数得出:
(Ans=frac {1}{12}*5!*(3*frac {2^3}{3!}+4*frac {2^2}{2!}+1*frac {2^1}{1!})=140)
(Eg3)
求由(1,3,5,7,9)构成的(n)位数的个数,要求(3,7)出现次数为偶数。
(Sol:)
设满足条件的(i)位数为(a_i),
则序列({a_i})的母函数(G_e(x))
[
=(1+frac {x^2}{2!}+frac{x^4}{4!}+frac{x^6}{6!}+...)^2(1+x+frac{x^2}{2!}+frac{x^3}{3!}+...)^3=frac 14(e^x+e^{-x})^2*e^{3x}=frac 14(e^{5x}+2e^{3x}+e^x)=frac 14sum_{n=0}^{infty}(5^n+2*3^n+1)*frac {x^n}{n!}
]
( herefore a_n=frac 14(5^n+2*3^n+1))
以上是关于生成函数(母函数)总结的主要内容,如果未能解决你的问题,请参考以下文章
矩量母函数(Moment Generating Function,mgf,又称:动差生成函数)