生成函数(母函数)总结

生成函数(母函数)总结

普通型生成函数(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))

原文地址:https://www.cnblogs.com/heyujun/p/10360058.html