生成函数的进一步理解
生成函数
-
作用:建立函数和数列之间的联系,通过函数的变换来做数列操作
-
通常把数列映射为一个多项式的系数,然后通过级数求和的方法将多项式变换到一个函数。
-
实例:
- \(f(x)=1+x+x^2+x^3+\cdots\),满足\(x\lt 1\)
建立了等差数列\(<1,1,1,\cdots>\)和函数\(f(x)=\frac{1}{1-x}\) - 更一般地,多项式\(f(x)=1+ax+(ax)^2+(ax)^3+\cdots\)建立数列\(<1,a,a^2,a^3,\cdots>\)和\(f(x)=\frac{1}{1-ax}\)之间之间的联系
- \(f(x)=1+x+x^2+x^3+\cdots\),满足\(x\lt 1\)
-
斐波那契数列
-
定义:\(f(0)=f(1)=1\),\(f(n)=f(n-1)+f(n-2)\)
-
推导,令\(F(x)\)为斐波那契数列的生成函数
\[ F(x)=f(0)+f(1)x+f(2)x^2+f(3)x^3+\cdots+f(n)x^n+\cdots\\ xF(x)=\quad \quad \quad f(0)x+f(1)x^2+f(2)x^3+\cdots+f(n-1)x^n+\cdots\\ x^2F(x)=\quad\quad\quad\quad\quad\quad f(0)x^2+f(1)x^3+\cdots+f(n-2)x^n+\cdots\\ F(x)-(xF(x)+x^2F(x))=F(x)(1-x-x^2)=x\\ F(x)=\frac{x}{1-x-x^2} \] -
把\(F(x)\)因式分解,得到
\[F(x)=\frac{4\sqrt{5}x}{5\sqrt{5}-\sqrt{5}(2x+1)^2}\\ =\frac{-1-\sqrt{5}}{\sqrt{5}(2x+\sqrt{5}+1)}+\frac{-1+\sqrt{5}}{\sqrt{5}(-2x+\sqrt{5}-1)}\\=\frac{1}{\sqrt{5}}(-\frac{1}{1-\frac{\sqrt{5}-1}{2}x}+\frac{1}{1-\frac{\sqrt{5}+1}{2}x}) \]如果把\(f(x)\frac{1}{1-\frac{\sqrt{5}+1}{2}x}\)看做一个公比为\(\frac{\sqrt{5}+1}{2}\)的等差数列的生成函数,那么容易得到\(f(n)=[x^n]F(x)=\frac{1}{\sqrt{5}}(-(\frac{\sqrt{5}-1}{2})^n+(\frac{\sqrt{5}+1}{2})^n1)\)
-
用函数(多项式代数)表示各种数列
- 相比于直接操作函数,多项式之间的运算更容易,因此我们往往先把一个数列的生成函数写出来,然后分析数列需要的操作通过函数的操作来表示,而这个操作运用多项式的运算来完成更会好。
- 各个操作之间的对应,令函数\(F(x)\)是数列\(<a_0,a_1,a_2,\cdots,a_n>\)的生成函数
- \(cF(x)\rightarrow<ca_0,ca_1,ca_2,\cdots,ca_n>\):数列倍增
- \(xF(x)\rightarrow<0,a_0,a_1,a_2,\cdots,a_n>\):数列右移,左边补\(0\)
- \(\frac{F(x)-a_0}{x}\rightarrow<a_1,a_2,\cdots,a_n>\):数列左移
- \(F_1(x)-F_2(x)\rightarrow<a_{1,0}-a_{2,0},a_{1,1}-a_{2,1},a_{1,2}-a_{2,2},\cdots,a_{1,n}-a_{2,n}>\):数列对应项加减
- \(F^{'}(x)\rightarrow<a_1,2a_2,3a_3,\cdots,na_n>\):数列乘幂次+左移
- $F_1(x)\cdot F_2(x)=\sum_{k=0,i\le k}a_{1,i}a_{2,k-i}x^k\rightarrow $数列卷积
卷积的应用
- 记数列\(<a_0,a_1,a_2,\cdots,a_n\cdots>\)的生成函数为\(F(x)\)
- 求数列前\(n\)项和:\([x^n]\frac{F(x)}{1-x}\)
- 求自然数平方和
\[\frac{1}{1-x}\leftrightarrow<1,1,1,\cdots,1,\cdots>\\
\frac{1}{(1-x)^2}\leftrightarrow<1,2,3,\cdots,n,\cdots>\\
\frac{1}{(1-x)^3}\leftrightarrow<1,3,6,10,\cdots,\frac{n(n+1)}{2},\cdots>\\
\frac{x}{(1-x)^3}\leftrightarrow<0,1,3,6,10,\cdots,\frac{n(n+1)}{2},\cdots>\\
\frac{1+x}{(1-x)^3}\leftrightarrow<1,4,9,16,25,\cdots>\\
(x^n)\frac{x(1+x)}{(1-x)^4}=\sum_{i=1}^ni^2\\
(1-x)^{-4}=\sum_{n\ge 0}\binom{n+3}{3}x^n\\
\sum_{i=1}^ni^2=\binom{n+2}{3}+\binom{n+1}{3}
\]
指数生成函数
\[\
F(x)=a_0+a_1x+a_2\frac{x^2}{2!}+a_3\frac{x^3}{3!}+\cdots=e^x
\]
现在看一下两个指数生成函数的卷积\(F\cdot G\),设\(F\)对应的数列是\(<a>\),\(G\)对应的数列是\(<b>\)。现在考虑我们要求卷积完后第\(4\)项的系数
\[c_4=\frac{a_0b_4}{0!4!}+\frac{a_1b_3}{1!3!}+\frac{a_2b_2}{2!2!}+\frac{a_4b_0}{4!0!}
\]
我们希望最后还是一个指数生成函数的形式,所以考虑给\(x^4\)乘上一个\(\frac{1}{4!}\),那么\(c_4\)就要乘上一个\(4!\)
\[4!c_4=\frac{4!}{0!4!}a_0b_4+\frac{4!}{1!3!}a_1b_3+\frac{4!}{2!2!}a_2b_2+\frac{4!}{3!1!}a_3b_1+\frac{4!}{4!0!}a_4b_0\\
=\binom{4}{0}a_0b_4+\binom{4}{1}a_1b_3+\binom{4}{2}a_2b_2+\binom{4}{3}a_3b_1+\binom{4}{4}a_4b_0
\]
因此
\[fg=\left\{\sum_{r=0}^{\infty}\frac{a_rx^r}{r!} \right\}\left\{\sum_{s=0}^{\infty}\frac{b_sx^s}{s!} \right\}=\sum_{r,s\ge 0}\frac{a_rb_s}{r!s!}x^{r+s}=\sum_{n\ge 0}x^n\left\{\sum_{r+s=n}\frac{a_rb_s}{r!s!}\right\}\\
\left[\frac{x^n}{n!} \right](fg)\sum_{r+s=n}\frac{n!a_rb_s}{r!s!}=\sum_{r}\binom{n}{r}a_rb_{n-r}
\]
扩展到更多项
\[f^m=\sum_{n\ge 0}\sum_{\sum_{i=1}^mp_i=n}\frac{\prod_{\sum_{i=1}^m p_i=n} a_{p_i}}{\prod_{\sum_{i=1}^mp_i=n}p_i!}x^n\\
\left[\frac{x^n}{n!}\right]f^m=\sum_{p_1+p_2+\cdots +p_m=n}\frac{n!}{p_1!p_2!\cdots p_m!}a_{p_1}a_{p_2}\cdots a_{p_m}=\sum_{p_1+p_2+\cdots +p_m=n}\binom{n}{p_1,p_2,\cdots,p_m}a_{p_1}a_{p_2}\cdots a_{p_m}
\]
Dirichlet生成函数
\[F(x)=a_1+\frac{a_2}{2^s}+\frac{a_3}{3^s}+\frac{a_4}{4^s}+\cdots
\]
现在看一下两个Dirichlet生成函数的卷积\(F\cdot G\),设\(F\)对应的数列是\(<a>\),\(G\)对应的数列是\(<b>\)。
设\(c_n\)是卷积后的第\(n\)项,则
\[c_n=\sum_{i\times j=n}a_ib_j=\sum_{d|n}a_db_\frac{n}{d}
\]
应用
\[\zeta(s)=1+\frac{1}{2^s}+\frac{1}{3^s}+\cdots\quad (a_i=1)
\]
- \(\zeta(s)^2\)的第\(n\)项的系数表示\(d(n)\),即\(n\)的约数的个数
- \(\frac{1}{\zeta(s)}\)的第\(n\)项的系数表示\(\mu(n)\)
- 若\(A(s)=B(s)\zeta(s)\),则\(B(s)=\frac{A(s)}{\zeta(s)}\),得到\(b_n=\sum_{d|n}a_d\mu(\frac{n}{d})\)

浙公网安备 33010602011771号