递推关系与生成函数

· · 个人记录

简单数列

设:

h_0,h_1,h_2,h_3...,h_n,...

表示一个数列,其中 h_n 叫做数列的一般项或通项

我们称 s_i= \sum_{k=0}^n \limits h_kh 数列的部分和

这些部分和形成一个新的数列 s_0,s_1,..s_n,... ,其通项为 s_n

等差数列:

h_0,h_0+q,h_0+2q,...,h_0+nq,...

通项为:

h_n=h_0+nq

部分和为:

s_n=(n+1)h_0+ \frac{qn(n+1)}2

等比数列:

h_0,qh_0,q^2h_0,...,q^nh_0,...

通项为:

h_n=q^nh_0

部分和为:

s_n=\begin{cases} {\frac {q^{n+1}-1}{q-1}h_0}\ \ \ \ \ \ \ \ (q\ !=1)\\ {(n+1)h_0}\ \ \ \ \ \ \ (q=1)\\ \end{cases}

斐波那契数列:

1. 部分和为:

s_n=\sum_{i=0}^n f_i=f_{n+2}-1

考虑归纳证明:

$$f_0=f_1-1 ⟺ 0=1-1$$ 显然成立 若 $s_n=f_{n+2}-1$,有: $$s_{n+1}=s_n+f_{n+1}=f_{n+1}+f_{n+2}-1=f_{n+3}-1$$ 证毕 **2. 通项公式:** $$f_n=\frac 1 {\sqrt 5}(\frac {1+\sqrt 5}{2})^n-\frac 1 {\sqrt 5}(\frac {1-\sqrt 5}{2})^n$$ 证明: 考虑如下形式的递推式 $$f_n-f_{n-1}-f_{n-2}=0$$ 先忽略序列的初始值,寻找一种形式为 $f_n=q^n$ 的解 $$q^n-q^{n-1}-q^{n-2}=0$$ $$q^{n-2}(q^2-q-1)=0$$ 显然 $q$ 不等于 $1$ ,那么 $q^2-q-1=0

解得 :

q_1=\frac {1+\sqrt 5}2\ ,\ q_2=\frac {1-\sqrt 5}2

因此,f_n=(\frac {1+\sqrt 5}2)^nf_n=(\frac {1-\sqrt 5}2)^n ,均满足递推关系

进而

f_n=c_0*(\frac {1+\sqrt 5}2)^n+c_1*(\frac {1-\sqrt 5}2)^n

满足递推关系

因此,我们只需求解

\begin{cases} {c_0+c_1=a}\\ \\ {c_0*\frac {1+\sqrt 5}2+c_1*\frac {1-\sqrt 5}2=b}\\ \end{cases}

即可求得以 ab 为初值的斐波那契数列的通项

对于 a=1,b=1 的情况,解得:

f_n=\frac 1 {\sqrt 5}(\frac {1+\sqrt 5}{2})^n-\frac 1 {\sqrt 5}(\frac {1-\sqrt 5}{2})^n

证毕

生成函数

绝大部分多项式科技都是在干同一件事 —— 通过代数手段优化卷积

h_0,h_1,h_2,h_3...,h_n,...

是无穷数列,它的生成函数定义为无穷级数

g(x)=\sum_{i=0}^{\infty}\limits h_ix^i

对于每一项都是 1 的序列,它的生成函数为:

g(x)=\sum_{i=0}^\infty \limits x^i

由牛顿二项式定理:

(x+y)^n= \sum_{i=0}^\infty \limits \left(\begin{array}{c}a\\ k\end{array}\right)z^k

其中,a 是实数,且

\left(\begin{array}{c}a\\ k\end{array}\right)=\frac {a(a-1)...(a-k+1)}{k!}

z=x/y,则 (x+y)^n=y^a(z+1)^a,有:

(1+z)^a=\sum_{i=0}^\infty \left(\begin{array}{c}a\\ k\end{array}\right)z^k

由于:

\left(\begin{array}{c}-n\\ k\end{array}\right)=\frac {-n(-n-1)...(-n-k+1)}{k!} =(-1)^k\frac {n(n+1)...(n+k-1)}{k!} =(-1)^k\left(\begin{array}{c}n+k-1\\ k\end{array}\right)

因此:

(1+z)^{-n}=\frac 1 {(1+z)^n}=\sum_{i=0}^\infty (-1)^i\left(\begin{array}{c}n+i-1\\ i\end{array}\right)z^k

n=1,有:

\frac 1{1+z}=\sum_{i=0}^\infty (-1)^iz^i

进而:

\frac 1{1-z}=\sum_{i=0}^\infty z^i

因此

g(x)=\sum_{i=0}^\infty \limits x^i= \frac 1 {1-x}

二项式系数\left(\begin{array}{c}m\\ 0\end{array}\right)\left(\begin{array}{c}m\\ 1\end{array}\right)...\left(\begin{array}{c}m\\ m\end{array}\right)的生成函数为:

g(x)=\sum_{i=0}^m\left(\begin{array}{c}m\\ i\end{array}\right)x^i=(1+x)^m

进而,若 a 为实数,对于无穷数列:

\left(\begin{array}{c}a\\ 0\end{array}\right)\left(\begin{array}{c}a\\ 0\end{array}\right)...\left(\begin{array}{c}a\\ n\end{array}\right)...

其生成函数为

g(x)=(1+x)^a=\sum_{i=0}^{\infty}\left(\begin{array}{c}a\\ i\end{array}\right)x^i

k 为整数,设数列

h_0,h_1,h_2,h_3...,h_n,... 显然 $$h_n=\left(\begin{array}{c}n+k-1\\ k-1\end{array}\right)$$ 它的生成函数是 $$g(x)=\sum_{n=0}^{\infty}\left(\begin{array}{c}n+k-1\\ k-1\end{array}\right)x^n=\frac 1{(1-x)^k}$$ 结合前面的证明,有: $$\frac 1{(1-x)^k}=\prod_{i=1}^{k}\frac{1}{1-x}=\prod_{i=1}^{k}\sum_{e_i=0}^\infty x^{e_i}$$ 将每一项取出,发现: $$\prod_{i=1}^k x^{e_i}=x^n$$ 当且仅当: $$\sum_{i=1}^k e_i=n$$ 因此 $\frac 1{(1-x)^k}$ 每一项的系数即为 $e_1+e_2+..+e_k=n$ 的正整数解个数 **例题:** **求装用苹果、香蕉、橘子和梨填充果篮的方案数 $h_n$,其中苹果数量必须是偶数,香蕉数量必须是 $5$ 的倍数,橘子最多四个,梨最多一个** 类似地,我们可以得到其生成函数: $$g(x)=(\sum_{i=0}^\infty x^{2i})(\sum_{j=0}^\infty x^{5j})(\sum_{k=0}^4 x^{k})(1+x)$$ $$=\frac 1{1-x^2}\frac{1}{1-x^5}\frac{1-x^5}{1-x}{}(1+x)$$ $$=\frac 1{(1-x)^2}=\sum_{i=0}^\infty \left(\begin{array}{c}i+1\\ i\end{array}\right)x^i=(n+1)x^i$$ 因此,我们仅通过代数手段处理数列 $h$ 的生成函数,得到了 $h_i=i+1

生成函数解递推式

*求 $a_n=3a_{n-1}a_0=2$ 的通项:**

设出其生成函数 G(x)=\sum_{i=0}^\infty \limits a_ix^i

有:

G(x)=a_0+\sum_{i=1}^\infty \limits 3a_{i-1}x*x^{i-1} =3xG(x)+2

整理得:

(1-3x)G(x)=2 G(x)=\frac 2 {1-3x}=\sum_{i=0}^\infty 2*(3x)^i

因此

a_i=2*3^i

*求 $a_n=8a_{n-1}+10^{n-1}a_0=1$ 的通项:**

设出其生成函数 G(x)=\sum_{i=0}^\infty \limits a_ix^i

有:

G(x)=a_0+\sum_{i=1}^\infty \limits (8a_{i-1}+10^{i-1})x^{i} =a_0+\sum_{i=1}^\infty \limits 8a_{i-1}x*x^{i-1}+\sum_{i=1}^\infty \limits 10^{i-1}x^{i} =a_0+ 8xG(x)+\frac {x}{1-10x}

整理得:

(8x-1)G(x)=-\frac {x}{1-10x}-a_0 (8x-1)G(x)=-\frac {1-9x}{1-10x} G(x)=\frac {1-9x}{(1-10x)(1-8x)} =\frac1 2(\frac 1{1-10x}+\frac 1 {1-8x}) =\frac 1 2(\sum_{i=0}^\infty 10^ix^i+\sum_{i=0}^\infty8^ix^i) =\sum_{i=0}^\infty \frac 1 2(10^i+8^i) x^i

因此

a_i=\frac {10^i+8^1} 2 **关于裂项:**[部分分式展开法](https://zhuanlan.zhihu.com/p/411676642) **普通生成函数:**[浅谈生成函数之OGF](https://zhuanlan.zhihu.com/p/52817010) **指数生成函数:**[浅谈生成函数之EGF](https://zhuanlan.zhihu.com/p/53079223) ### [[TJOI2015]概率论](https://www.luogu.com.cn/problem/P3978) ```cpp #include<bits/stdc++.h> using namespace std; int n; int main(){ cin>>n; printf("%.12lf",1.0*n*(n+1)/2/(2*n-1)); return 0; } ```