ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

浅谈生成函数

2022-05-24 22:03:10  阅读:135  来源: 互联网

标签:浅谈 dfrac sum sqrt 生成 displaystyle 函数


生成函数

生成函数(generating function),又称母函数,是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。
生成函数有许多不同的种类,但大多可以表示为单一的形式

\[F(x) = \sum_{n}a_nk_n(x) \]

其中 \(k_n(x)\) 被称为核函数,不同的核函数会导出不同的生成函数,分成3类

普通生成函数:\(k_n(x)=x^n\) (OGF
指数生成函数:\(k_n(x)=\dfrac {x^n} {n!}\) (EGF
狄利克雷生成函数:\(k_n(x)=\dfrac {1} {n^x}\) (DGF

另外,对于生成函数 \(F(x)\),我们用 \([k_n(x)]F(x)\) 来表示它的第 \(n\) 项的核函数对应的系数,也就是 \(a_n\)

容易发现其中的 \(x\) 对于原式中的结果并没有什么影响,我们想要的应该是固定项前面的系数

普通生成函数

形式:

\[F(x) = \sum_{n}a_n x^n \]

\(a\) 既可以是有穷序列,也可以是无穷序列

若干例子:
序列 \(a=\langle 1,2,3\rangle\) 的OGF:\(1+2x+3x^2\)
序列 \(a=\langle 1,1,1,\dots,1\rangle\) 的OGF:\(\displaystyle\sum_{n} x^n\)
序列 \(a=\langle 1,2,4,8,16,\dots\rangle\) 的OGF:\(\displaystyle \sum_n 2^nx^n\)
序列 \(a=\langle 1,3,5,7,9,\dots\rangle\) 的OGF:\(\displaystyle \sum_n (2n+1)x^n\)

基本运算

考虑两个序列 \(a,b\) 的普通生成函数,分别为 \(F(x),G(x)\),那么有

\[F(x)\pm G(x)=\sum_n (a_n\pm b_n)x^n \]

因此 \(F(x)\pm G(x)\) 是序列 \(\\langle a_n\pm b_n \rangle\)

考虑乘法运算,也就是卷积:

\[F(x)G(x)=\sum_n x^n \sum_{i=0}^n a_ib_{n-i} \]

封闭形式

这是OGF比较好玩的一个东西,就是说每次写成一个多项式真的很难受,但是如果能够把这个形式幂级数写成其它的形式可能就会好很多

对于上述例二,容易发现:

\[xF(x)+1=F(x) \]

很容易想到移项后可以得到:\(F(x)=\dfrac {1}{1-x}\)
可能会有点疑惑,这个东西怎么还能是负数?
实际上发现,如果要让前面的形式幂级数在 \(\infty\) 处收敛,x的范围应在 \(\in (-1,1)\)
但是还是不需要去理它,因为我们生成函数的本质不在于这个 \(x\) 的取值,或者说对于这个封闭形式,只是一种方便推过去和推回来的过程罢了,并不是对原式的具体阐述

有若干种物品 ,每种物品只有1件,求取 \(n\) 件物品的总方案数。

每种物品的生成函数是 \(1\times x^0+1\times x^1\)
那么若干个物品乘起来就是 \((x+1)^n\)
然后用二项式定理展开一下就可以得到:

\(\displaystyle (x+1)^n=\sum_{i=0}^n \binom {n} {i}x^i\)

如果学过组合数学就会发现这个确实很对

当然也有比较恶心的

有若干种物品 ,每种物品可以取任意件,求取 \(n\) 件物品的总方案数

和上个题一样,每个物品的生成函数是:\(\displaystyle\sum_{i=0}^n x^i\) 很快就能发现,又等于 \(\dfrac 1 {1-x}\)

这样的话 \(m\) 件物品的生成函数就是

\[\begin{aligned} \dfrac {1} {(1-x)^m}=&(1-x)^m\\ =&\sum_{i=0}^{\infty} \dfrac {-m \times (-m-1) \dots (-m-i+1)} {i!}(-x)^i\\ =&\sum_{i=0}^{\infty} \dfrac {(-1)^i \times m \times (m+1)\dots (m+i-1)} {i!}(-1)^ix^i\\ =&\sum_{i=0}^{\infty} \dfrac {(m+i-1)!} {i!(m-1)!}x^i\\ =&\sum_{i=0}^{\infty} \binom {m + i - 1} {m - 1}x^i \end{aligned} \]

同时可以用隔板法理解,答案是相同的

来个重头戏:斐波那契数列:

前置知识:

\(\displaystyle\dfrac {1} {1-kx}=\sum_{i=0}k^ix^i\)

设 \(F(x)\) 表示斐波那契数列的生成函数

首先第一步拆分,容易得到:

\[\begin{aligned} A =& 1+1x+2 x^2 + 3x^3+5x^4+8x^5\\ xA =& ~~~~~~~~~ x+ 1x^2+2x^3+3x^4+5x^5\\ x^2A=&~~~~~~~~~~~~~~~~1x^2+1x^3+2x^4+3x^5 \end{aligned} \]

容易发现下面两个相加就只和第一个差出来一个数1

\(A-xA-x^2A=1\)

整理一下:\(A=\dfrac {1}{1-x-x^2}\)

然后发现这和上面补充的前置知识太相似了,如果能做到和前面的那个完全一样就好了

然后就是很多套路性的转化了

第一个因式分解,\(1-x-x^2=(1-ix)(1-jx)\)

解得 \(i=\dfrac {1+\sqrt 5} {2}~~j =\dfrac {1-\sqrt 5} {2}\)

但是这时候还是两个 \(\dfrac {1} {1-kx}\) 的卷积,容易发现既然根式都出来了,上面的1也顺路拆了算了

令 \(ai+bj=1\),得到 \(a=\dfrac {1} {{\sqrt 5}}i~~b=-\dfrac {1} {\sqrt 5}j\)
带回原来的式子里,裂项以后拆成一个巨无霸式子:

\(A=\dfrac {i} {\sqrt 5}\dfrac {1}{1-ix}-\dfrac{j}{\sqrt 5}\dfrac{1}{1-jx}\)

写的更加简便一点:

\(\displaystyle A = \dfrac {M} {1-ax}+\dfrac {N} {1-bx}=\sum_{k=0}(Ma^k + Nb^k)x^k\)

同时 \(M=\dfrac {\sqrt 5 i} {5},N=-\dfrac {\sqrt 5 j} {5},a=i,b=j\)
然后就是前面的基本多项式运算了

\(\displaystyle F(x)=\sum_{k=0}((\dfrac {\sqrt 5 i} {5}) \times (\dfrac {1+\sqrt 5} 2)^k-\dfrac {\sqrt 5 j} {5}\times (\dfrac {1-\sqrt 5} {2})^k)x^k\)

经过一点点化简就能得到:

\[ \frac{x}{1-x-x^2}=\sum_{n\ge 0}x^n \frac{1}{\sqrt{5}}\left( \left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n \right) \]

到这里其实要说的也就差不多了

标签:浅谈,dfrac,sum,sqrt,生成,displaystyle,函数
来源: https://www.cnblogs.com/RevolutionBP/p/16307338.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有