数列求和、通项与递推

简单数列

设:

\[h_0,h_1,h_2,h_3...,h_n,... \]

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

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

这些部分和形成一个新的数列 \(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): A=a+a*p+a*p^2+...+a*p^n \]

有:

\[(2): A*p=a*p+a*p^2+a*p^3+...+a*p^{n+1} \]

\[(1)-(2):A*(1-p)=a*(1-p^{n+1}) \]

可得:

\[A=a*\frac {1-p^{n+1}}{1-p} \]

等差乘等比数列求和

\[(1): A=a+(a+b)*p+(a+2*b)*p^2+...+(a+n*b)*p^n \]

\[(2): A*p=a*p+(a+b)*p^2+(a+2*b)*p^3+...+(a+n*b)*p^{n+1} \]

\[(1)-(2):A*(1-p)=a+b*(p+p^2+p^3+...+p^n)-(a+n*b)*p^{n+1} \]

\[A*(1-p)=a+b*p*(1+p^1+p^2+...+p^{n-1})-(a+n*b)*p^{n+1} \]

\[A*(1-p)=a+b*p*\frac {1-p^{n}}{1-p}-(a+n*b)*p^{n+1} \]

可得:

\[A=\frac {a}{1-p}+b*\frac {p-p^{n+1}}{(1-p)^2}-\frac{(a+n*b)*p^{n+1}}{{1-p}} \]


CF908D New Year and Arbitrary Arrangement

求:

\[\frac {pb}{pa+pb}*\sum_{a=0}^\infty(i+j+a)*(\frac {pb}{pa+pb})^a \]

代入公式:

\[\frac {pb}{pa+pb}* (\sum_{a=0}^\infty(i+j+a)*(\frac {pa}{pa+pb})^a)\]

\[=\frac {pb}{pa+pb}*(\frac {i+j}{1-\frac {pa}{pa+pb}}+\frac {\frac {pa}{pa+pb}-\frac {pa}{pa+pb}^{\infty+1}}{(1-\frac {pa}{pa+pb})^2}-\frac{(i+j+n)*\frac {pa}{pa+pb}^{\infty+1}}{{1-\frac {pa}{pa+pb}}}) \]

\[=\frac {pb}{pa+pb}*(\frac {i+j}{\frac {pb}{pa+pb}}+\frac {\frac {pa}{pa+pb}-\frac {pa}{pa+pb}^{\infty+1}}{(\frac {pb}{pa+pb})^2}-\frac{(i+j+n)*\frac {pa}{pa+pb}^{\infty+1}}{{\frac {pb}{pa+pb}}}) \]

\[=i+j+\frac {\frac {pa}{pa+pb}-\frac {pa}{pa+pb}^{\infty+1}}{\frac {pb}{pa+pb}}-(i+j+n)*\frac {pa}{pa+pb}^{\infty+1} \]

\[=i+j+\frac {\frac {pa}{pa+pb}}{\frac {pb}{pa+pb}}=i+j+\frac {pa}{pb} \]

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int k,pa,pb;
const long long md=1e9+7;
long long dp[1005][1005],invab,invb;
inline long long pwr(long long x,long long y){
	long long res=1;
	while(y){
		if(y&1)res=res*x%md;
		x=x*x%md;y>>=1;
	}return res;
}
long long dfs(int x,int y){
	if(x+y>=k)return (x+y+pa*invb%md)%md;
	if(~dp[x][y])return dp[x][y];
	return dp[x][y]=(dfs(x+1,y)*pa%md+dfs(x,x+y)*pb)%md*invab%md;
}
int main(){
	memset(dp,-1,sizeof(dp));
	scanf("%d%d%d",&k,&pa,&pb);
	invab=pwr(pa+pb,md-2);invb=pwr(pb,md-2);
	printf("%lld",dfs(1,0));

	return 0;
}

斐波那契数列:

1. 部分和为:

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

考虑归纳证明:

\(n=0\) 时:

\[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)^n\)\(f_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} \]

即可求得以 \(a\)\(b\) 为初值的斐波那契数列的通项

对于 \(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\) 表示 \(e_1+e_2+..+e_k=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=3*a_{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=8*a_{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 \]


\[\]

关于裂项:部分分式展开法

普通生成函数:浅谈生成函数之OGF

指数生成函数:浅谈生成函数之EGF

[TJOI2015]概率论

#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;
}
posted @ 2021-12-14 06:45  一粒夸克  阅读(776)  评论(0编辑  收藏  举报