母函数(生成函数)

母函数(生成函数)##介绍母函数是组合数学中相当重要的一个知识点,可以用来解决一些排列组合问题,还有所有的常系数线性齐次递推问题。如果系数不是常数,需要根据具体情况进行处理。具体的内容可以看组合数学相关书籍或者大佬的博客,大佬的另一篇博客由于大佬总是想当然地把别人当成大佬,一些内容对(像我这种)蒟蒻来说不是很友

大家好,欢迎来到IT知识分享网。母函数(生成函数)

介绍

母函数是组合数学中相当重要的一个知识点,可以用来解决一些排列组合问题,还有所有的常系数线性齐次递推问题。如果系数不是常数,需要根据具体情况进行处理。

具体的内容可以看组合数学相关书籍或者大佬的博客,大佬的另一篇博客

由于大佬总是想当然地把别人当成大佬,一些内容对(像我这种)蒟蒻来说不是很友好,在这里讲一下母函数的基础。(研究母函数时,钦定\(|x|<1\)),这样,由等比数列求和公式有:

\(\frac{1}{1-x}=\sum_{i=0}^\infty x^i=1+x+…+x^{\infty}\)

\(\frac{1}{1-kx}=\sum_{i=0}^\infty k^ix^i=1+kx+…+k^{\infty}x^{\infty}\)

1.普通型母函数。

假设有一个数列\(a\),那么它的母函数其实就是一个关于\(x\)的多项式,\(x^n\)的系数为\(a_n\),对于已知通项的数列,其母函数可以直接写出来。

而对于未知的数列,主要分为两类:递推型和组合型。

递推型就是利用错位相消,举个栗子:

\(a_n=3a_{n-1}+10a_{n-2}\),\(a_0=1,a_1=2\)

移项,得\(a_n-3a_{n-1}-10a_{n-2}=0\),设\(a_n\)的母函数为\(G(x)\)

\(\quad\quad G(x)=a_0+a_1x+\quad\quad a_2x^2+\quad\quad a_3x^3…\)
\(-3xG(x)=\quad -3a_0x+(-3)a_1x^2+(-3)a_2x^3…\)
\(-10x^2G(x)=\quad\quad\quad\quad -10a_0x^2+(-10)a_1x^3\)

三行相加,可以发现等式右侧除了第一行的第1,2项和第二行的第1项外全消掉了。

所以我们可以得到\((1-3x-10x^2)G(x)=a_0+a_1x-3a_0x=1-x\),即\(G(x)=\frac{1-x}{1-3x-10x^2}\),生成函数就求出来了,那如果我们还要求\(a_n\)的通项呢?

对于这种东西,我们可以把他化成\(\frac{k1}{x-A}+\frac{k2}{x-B}\)这种形式,其中\(A\)\(B\)由分母的因式分解唯一确定,然后\(k1,k2\)可由待定系数法解得。

然后对于\(\frac{k}{x-A}\),总可以化成\(k’*\frac{1}{1-Nx}\),就是\(k’\sum_{i=0}^\infty N^ix^i\),找出\(x^k\)的系数就是\(a_n\),如果母函数拆开成多个该类分式的话各部分相加就好。

具体计算就不算了。

PS:一部分非齐次线性递推其实也可以这样解,比如\(a_n-3a_{n-1}-10a_{n-2}=f(n)\),按照上述方法错项后会剩下一个等比数列和前几项余项。一般的,只要f(n)有求和公式,都可以用母函数求解。

组合型就是利用组合意义构造多项式,举个栗子:

假设现在有\(a_1\)个红球,\(a_2\)个黄球,\(a_3\)个白球,\(a_4\)个黑球,从中取\(k\)个球,这\(k\)个球的颜色组合有多少种?

那么可以构造函数

\[G(x)=(1+x+x^2+…+x^{a_1})(1+x+x^2+…+x^{a_2})(1+x+x^2+…+x^{a_3})(1+x+x^2+…+x^{a_4}) \]

做乘法时,如果我在第一个括号中选了\(x^i\)这一项,代表我选了\(i\)个红球,后面的括号也是一样。

最终乘积中\(x^k\)的系数就是选\(k\)个球的颜色情况种数。

如果选择有限制呢?比如说,现在不能没有红球,黄球只能是偶数个,白球 \(\geq\) 3个。

那么

\[G(x)=(x+x^2+…+x^{a_1})(1+x^2+x^4+…+x^{\lfloor\frac{a_2}{2}\rfloor *2})(x^3+…+x^{a_3})(1+x+x^2+…+x^{a_4}) \]

其他

有一个重要结论,如果数列\(a_n\)的母函数是\(G_1(x)\),那么\(S_n=\sum_{i=0}^{n}a_i\)的母函数为\(G_2(x)=G_1(x)*\frac{1}{1-x}\)。(可以手动验证)

2.指数型母函数

指数型母函数用于解决可重集的k排列问题。

假设现在有\(a_1\)个红球,\(a_2\)个黄球,\(a_3\)个白球,\(a_4\)个黑球,从中取\(k\)个球,这\(k\)个球的颜色排列有多少种?

是不是可以根据上面的结论,先组合,再乘上\(k!\)呢?不好意思,由于选出的\(k\)个元素可能有重复,而且每次重复的方式不一样,不能通过先组合再排列的方式解决。

由于可重集的排列我们是知道的,对于每一类相同的元素(假设有\(n_i\)个),就除以\(n_i!\),所以我们不妨在选一种颜色时就考虑这个因素,构造:

\[G(x)=(1+\frac{x}{1!}+\frac{x^2}{2!}+…+\frac{x^{a_1}}{a_1!})(…)(…)(…) \]

这样乘开后\(x^k\)的系数就是答案。

假设有一个数列\(a_n\),令

\[G_e(x)=a_0+\frac{a_1}{1!}x+\frac{a_2}{2!}x^2+\frac{a_3}{3!}x^3+… \]

\(G_e(x)\)称为\(a_n\)的指数型母函数,用的比较多的是\(a_n\equiv 1\)的形式。

为什么叫指数型母函数呢?由泰勒展开得:\(e^x=1+\frac{x}{1!}+\frac{x^2}{2!}+…\),就是上面我们所构造的形式。

例题:\(n\)个不同的小球放入\(m\)个不同的盒子,盒子不能为空,有几种方法?

以盒子为研究对象,此问题相当于将m个不同的元素取n个作可重复排列,每个元素不能不取,则其生成函数为

\[G(x)=(x+\frac{x^2}{2!}+\frac{x^3}{3!}+…)^n=(e^x-1)=\sum_{k=0}^{n}\tbinom{n}{k}(e^x)^{n-k}(-1)^k=\sum_{k=0}^{n}[\tbinom{n}{k}\sum_{m=0}^{\infty}\frac{(n-k)^m}{m!}x^m](-1)^k \]

\[=\sum_{m=0}^{\infty}[\sum_{k=0}^{n}(-1)^k\tbinom{n}{k}(n-k)^m]\frac{x^m}{m!} \]

所以n个球放到m个盒子中的方案数为\(\sum_{k=0}^{n}(-1)^k\tbinom{n}{k}(n-k)^m\)

如果盒子相同呢?打乱盒子顺序,除以\(m!\)就行,方案数为\(\frac{1}{m!}\sum_{k=0}^{n}(-1)^k\tbinom{n}{k}(n-k)^m\)。是不是很熟悉?对,这个东西就是第二类斯特林数的通项!

这样,我们没有用容斥原理就求出了第二类斯特林数的通项。

总结

母函数的用途十分广泛,套路也很多,它甚至可以求卡特兰数通项!(但由于我太菜了没怎么看懂,所以咕了)。做题的时候要注意审题,分清是用普通型还是指数型,接下去的构造就比较容易了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30550.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信