背景:
基于对于昨天的考试暴毙的反思就写了这篇博客,总结之前所有学过的递推关系以及一些比较有常见的数列,这其实就是针对于 T 1 T1 T1 的出题范围,很有可能是这些公式的简单应用。所以就把它们打个包直接全放在这个专题的博客里面了,一是方便复习,二是方便再用,,(写这个的时候,,胳膊还是废了的,,,觉得打字都是左中右轻,,(再也不打羽毛球了,,,/(ㄒoㄒ)/~~))
前置黑科技:
-
组合数: C n m = ( n m ) = n ! m ! ( n − m ) ! C^{m}_{n}=\dbinom{n}{m}=\frac{n!}{m!(n-m)!} Cnm=(mn)=m!(n−m)!n!
-
排列数: A n m = n ! ( n − m ) ! A_{n}^{m}=\frac{n!}{(n-m)!} Anm=(n−m)!n!
-
圆排列: Q n m = n ! m ( n − m ) ! Q_{n}^{m}=\frac{n!}{m(n-m)!} Qnm=m(n−m)!n!
-
错排列: D n m = n ! ( 1 − 1 1 ! + 1 2 ! − … + ( − 1 ) n n ! ) D^{m}_{n}=n!(1-\frac{1}{1!}+\frac{1}{2!}-…+\frac{(-1)^n}{n!}) Dnm=n!(1−1!1+2!1−…+n!(−1)n)
(错排递推式: D ( n ) = ( n − 1 ) ( D ( n − 1 ) + D ( n − 2 ) ) D(n)=(n-1)(D(n-1)+D(n-2)) D(n)=(n−1)(D(n−1)+D(n−2)))
1.等差数列:
递推式: a n = a n − 1 + d a_n=a_{n-1}+d an=an−1+d
通项式: a n = a 1 + d ( n − 1 ) a_n=a_1+d(n-1) an=a1+d(n−1)
前n项和: S n = n a 1 + d n ( n − 1 ) 2 S_n=na_1+d\frac{n(n-1)}{2} Sn=na1+d2n(n−1)
2.等比数列:
递推式: a n = a n − 1 ∗ q a_n=a_{n-1}*q an=an−1∗q
通项式: a n = a 1 ∗ q n − 1 a_n=a_1*q^{n-1} an=a1∗qn−1
前n项和: S n = a 1 ( 1 − q n ) 1 − q ( q ≠ 1 ) S_n=a_1\frac{(1-q^n)}{1-q}(q\neq1) Sn=a11−q(1−qn)(q=1)
3.斐波那契数列( Fibonacci ):
数列: 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 … 1,1,2,3,5,8,13,21,34… 1,1,2,3,5,8,13,21,34…
递推式:
F
(
n
)
=
{
F
(
n
)
=
F
(
n
−
1
)
+
F
(
n
−
2
)
(
n
>
2
)
F
(
1
)
=
1
,
F
(
2
)
=
1
F(n) =\begin{cases}F(n)=F(n-1)+F(n-2)(n>2)\\F(1)=1,F(2)=1\end{cases}
F(n)={F(n)=F(n−1)+F(n−2)(n>2)F(1)=1,F(2)=1
单位矩阵(矩阵加速):
[
1
1
1
0
]
\begin{bmatrix}1 & 1 \\1 & 0\end{bmatrix}
[1110]
通项式:
F
(
n
)
=
5
5
[
(
1
+
5
2
)
n
−
(
1
−
5
2
)
n
]
F(n)=\frac{\sqrt{5}}{5}[(\frac{1+\sqrt{5}}{2})^{n}-(\frac{1-\sqrt{5}}{2})^{n}]
F(n)=55[(21+5)n−(21−5)n]
#广义斐波那契数列:
{
F
(
n
)
=
p
F
(
n
−
1
)
+
q
F
(
n
−
2
)
(
n
>
1
)
F
(
1
)
=
p
,
F
(
2
)
=
q
\begin{cases}F(n)=pF(n-1)+qF(n-2)(n>1)\\F(1)=p,F(2)=q\end{cases}
{F(n)=pF(n−1)+qF(n−2)(n>1)F(1)=p,F(2)=q
单位矩阵(矩阵加速):
[
p
q
1
0
]
\begin{bmatrix}p & q \\1 & 0\end{bmatrix}
[p1q0]
通项式:(暂时不会,,,逃,,,
(广义斐波那契数列中,当 p = 1 , q = 1 p=1,q=1 p=1,q=1 时,就是斐波那契—卢卡斯数列( 1 , 3 , 4 , 7 , 11 , 18 … 1,3,4,7,11,18… 1,3,4,7,11,18…)( L ( n ) F ( n ) = F ( 2 n ) L(n)F(n)=F(2n) L(n)F(n)=F(2n) || L ( n ) = F ( n − 1 ) + F ( n + 1 ) L(n)=F(n-1)+F(n+1) L(n)=F(n−1)+F(n+1));当 p=1,q=2时,就是佩尔—勾股弦数( 1 , 2 , 5 , 12 , 29 … 1,2,5,12,29… 1,2,5,12,29…) ;当 p = 2 , q = − 1 p=2,q=-1 p=2,q=−1 时,就是等差数列)
数列应用:
1. 黄金分割比:用后项除以前项越来越接近黄金分割比。
- 有一段楼梯有 10 10 10 级台阶,规定每一步只能跨一级或两级,要登上第 10 10 10 级台阶有几种不同的走法? ( 登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法…… )
- 一枚均匀的硬币掷 10 10 10 次,问不连续出现正面的可能情形有多少种?
4.汉诺塔( Hanoi):
规则:
有三根杆子 A , B , C A,B,C A,B,C。 A A A杆上有 N N N 个 ( N > 1 ) (N>1) (N>1) 穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至 C C C 杆:
- 每次只能移动一个圆盘;
- 大盘不能叠在小盘上面。
最小步数递推式:
f
(
n
)
=
2
f
(
n
−
1
)
+
1
f(n)=2f(n-1)+1
f(n)=2f(n−1)+1
最小步数通项式:
f
(
n
)
=
2
n
−
1
f(n)=2^n-1
f(n)=2n−1
#最长路径不重复长度(这里如果画出图的话和七盘的汉诺塔七级的谢尔宾斯基三角形有神秘关系):
3
n
−
1
3^n-1
3n−1
#将所有盘子从一个柱子移动到另一个柱子的非相交路径的数量
N
(
n
)
=
{
N
(
n
)
=
N
(
n
−
1
)
2
+
N
(
n
−
1
)
3
(
n
>
1
)
N
(
1
)
=
1
N(n) =\begin{cases}N(n)=N(n-1)^2+N(n-1)^3(n>1)\\N(1)=1\end{cases}
N(n)={N(n)=N(n−1)2+N(n−1)3(n>1)N(1)=1
#汉诺塔多塔问题:
最小步数递推式:
f
[
n
]
[
m
]
=
min
0
≤
k
<
n
{
2
f
[
n
]
[
m
]
+
f
[
n
−
k
]
[
m
−
1
]
}
f[n][m] = \min_{0 \le k \lt n} \lbrace 2f[n][m] + f[n-k][m-1] \rbrace
f[n][m]=0≤k<nmin{2f[n][m]+f[n−k][m−1]}
(附上Wiki的链接,部分来自Wiki)
5.卡特兰数(Catalan):
数列: 1 , 2 , 5 , 14 , 42 , 132 … 1, 2, 5, 14, 42, 132… 1,2,5,14,42,132…
递归公式 :
h
(
n
)
=
∑
i
=
0
n
−
1
h
(
i
)
×
h
(
n
−
i
−
1
)
=
h
(
n
)
=
h
(
n
−
1
)
×
(
4
n
−
2
)
n
+
1
h(n)=\sum_{i=0}^{n-1} h(i)×h(n-i-1)=h(n)=\frac{h(n-1)×(4n-2)}{n+1}
h(n)=i=0∑n−1h(i)×h(n−i−1)=h(n)=n+1h(n−1)×(4n−2)
通项式 :
h
(
n
)
=
C
2
n
n
n
+
1
=
C
2
n
n
−
C
2
n
n
−
1
h(n)=\frac{C^n_{2n}}{n+1}=C^n_{2n}-C^{n-1}_{2n}
h(n)=n+1C2nn=C2nn−C2nn−1
相关证明:
折线法(很多方法,自行百度,这里举这一例子):折线法证明Catalan(博主自己写的,,)
#扩展卡特兰数 ( e x c a t a l a n ) (excatalan) (excatalan)
(扩展卡特兰数有很多,毕竟一个式子变一个地方就是一道题,,这里博主就不多说了,在上面那篇博客中有一道 e x c a t a l a n excatalan excatalan 的题目,,再次推博,,,)
数列应用:
(卡特兰数就是在解决有一个东西有两种情况在排列的时候要出现过前面的情况再出现这个情况时才是合法的,就像是括号的匹配法则一样)
1. n n n组括号的合法运算式的个数。
2. n n n 个节点组成不同构的满二叉树的方案数。
3.一个无穷栈里 n n n 个自然数字典序进栈,不同的出栈序列的个数。
4.在圆上选择 2 n 2n 2n 个点,将这些点成对连接起来使 n n n 条线不相交的方案数。
5.将一个凸多边形分成三角形的方案数。
6.在 n × n n\times n n×n 的网格图中不越过对角线的单调路径的个数。
7.由 n n n 个 + 1 +1 +1 和 n n n 个 − 1 -1 −1 构成 2 n 2n 2n 项 a 1 , a 2 , … , a n a_1,a_2,…,a_n a1,a2,…,an 其部分和满足 a 1 + a 2 + … + a k > = 0 a_1+a_2+…+a_k>=0 a1+a2+…+ak>=0 的序列个数。
8. p = a 1 a 2 a 3 a 4 … a n p=a_1a_2a_3a_4…a_n p=a1a2a3a4…an 在保证表达式合法的前提下(一个数不能被括号两次例如: ( ( a ) ) ((a)) ((a)),有多少种添括号的方法。
9.有 2 n 2n 2n 个人排成一行进入剧场,入场费 5 5 5 元,其中,只有 n n n 个人有 5 5 5 元的钞票,另外 n n n 个人只有 10 10 10 元的钞票,剧院无其他钞票,问有多少种方法使得只要有 10 10 10 元的人买票,售票处就有 5 5 5 元的钞票找零。
6.第一类斯特林数(stirling):
数列目的:用 n n n 个元素组成 m m m 个环的方案数
递推式:
S
m
n
=
S
n
−
1
m
−
1
+
(
n
−
1
)
∗
S
n
−
1
m
S_{m}^{n}=S^{m-1}_{n-1}+(n-1)*S^{m}_{n-1}
Smn=Sn−1m−1+(n−1)∗Sn−1m
通项式:(暂时不会,逃,,,
数列应用:
1.可以表示升阶函数和降阶函数的系数( P a s c a l Pascal Pascal三角形,又叫杨辉三角)
2.例如下面这个实际应用:
7.第二类斯特林数(Stirling):
数列目的:把大小为 n n n 的集合划分为 m m m 个非空集合的方案数
递推式:
S
m
n
=
S
n
−
1
m
−
1
+
m
∗
S
n
−
1
m
S_{m}^{n}=S^{m-1}_{n-1}+m*S^{m}_{n-1}
Smn=Sn−1m−1+m∗Sn−1m
通项式:
S
m
n
=
1
m
!
∑
k
−
1
m
(
−
1
)
k
C
m
k
(
m
−
k
)
n
S^{n}_{m}=\frac{1}{m!}\sum_{k-1}^{m}(-1)^kC_{m}^{k}(m-k)^n
Smn=m!1k−1∑m(−1)kCmk(m−k)n
把大小为n的集合划分为
m
m
m个非空集合的方案数。
数列应用:
1.小球与盒子(在下面会将有具体且详细的讲解)
8.贝尔数(Bell):
数列: 1 , 1 , 2 , 5 , 15 , 52 , 203 , 877 , 4140 , 21147 , 115975 , … 1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147, 115975, … 1,1,2,5,15,52,203,877,4140,21147,115975,…
数列目的: B ( n ) B(n) B(n) 是基数为 n n n 的集合划分数目。
递推式:
B
(
n
)
=
{
B
(
n
+
1
)
=
∑
k
=
0
n
(
n
k
)
B
(
k
)
B
(
n
)
=
∑
k
=
1
n
S
(
n
,
k
)
B(n) =\begin{cases}B(n+1)=\sum^{n}_{k=0}\dbinom{n}{k}B(k)\\B(n)=\sum^{n}_{k=1}S(n,k)\end{cases}
B(n)=⎩⎨⎧B(n+1)=∑k=0n(kn)B(k)B(n)=∑k=1nS(n,k)
数列应用:
1.贝尔三角形
9.组合数Plus:
(这里就是组合数的运算的时候的一些小化简的技巧)
C
n
2
=
n
(
n
−
1
)
2
C^{2}_{n}=\frac{n(n-1)}{2}
Cn2=2n(n−1)
C n 3 = n ( n − 1 ) ( n − 2 ) 6 C_{n}^{3}=\frac{n(n-1)(n-2)}{6} Cn3=6n(n−1)(n−2)
C n m = C n − 1 m − 1 + C n − 1 m C^{m}_{n}=C^{m-1}_{n-1}+C^{m}_{n-1} Cnm=Cn−1m−1+Cn−1m
m C n m = n C n − 1 m − 1 mC^{m}_{n}=nC^{m-1}_{n-1} mCnm=nCn−1m−1
C n 0 + C n 1 + C n 2 + … + C n n = 2 n C^{0}_{n}+C^{1}_{n}+C^{2}_{n}+…+C^{n}_{n}=2^n Cn0+Cn1+Cn2+…+Cnn=2n
C n 1 + 2 C n 2 + 3 C n 3 + … + n C n n = n 2 n − 1 C^{1}_{n}+2C^{2}_{n}+3C^{3}_{n}+…+nC^{n}_{n}=n2^{n-1} Cn1+2Cn2+3Cn3+…+nCnn=n2n−1
C n 1 + 2 2 C n 2 + 3 3 C n 3 + … + n n C n n = n ( n + 1 ) 2 n − 2 C^{1}_{n}+2^2C^{2}_{n}+3^3C^{3}_{n}+…+n^nC^{n}_{n}=n(n+1)2^{n-2} Cn1+22Cn2+33Cn3+…+nnCnn=n(n+1)2n−2
C n 1 1 − C n 2 2 + C n 3 3 − … + ( − 1 ) n − 1 C n n n = 1 + 1 2 + 1 3 + … + 1 n = l n ( n ) + C \frac{C^{1}_{n}}{1}-\frac{C^{2}_{n}}{2}+\frac{C^{3}_{n}}{3}-…+(-1)^{n-1}\frac{C^{n}_{n}}{n}=1+\frac{1}{2}+\frac{1}{3}+…+\frac{1}{n}=ln(n)+C 1Cn1−2Cn2+3Cn3−…+(−1)n−1nCnn=1+21+31+…+n1=ln(n)+C
C n 0 2 + C n 1 2 + C n 2 2 + … + C n n 2 = C 2 n n {C^{0}_{n}}^2+{C^{1}_{n}}^2+{C^{2}_{n}}^2+…+{C^{n}_{n}}^2=C_{2n}^{n} Cn02+Cn12+Cn22+…+Cnn2=C2nn
10.平面分割问题:
参考博客
(这里由于博主的才疏学浅,,,暂时不会,来时再补,,,)
11.小球与盒子问题:
1.球同,盒空,可空
(类似于整数拆分问题(包含0))
f
[
n
]
[
m
]
=
{
f
[
0
]
[
1
]
=
1
f
[
n
]
[
m
]
=
f
[
n
]
[
n
]
(
n
<
m
)
f
[
n
]
[
m
]
=
f
[
n
−
m
]
[
m
]
+
f
[
n
]
[
m
−
1
]
(
n
>
=
m
)
f[n][m]=\begin{cases}f[0][1]=1\\f[n][m]=f[n][n](n<m)\\f[n][m]=f[n-m][m]+f[n][m-1](n>=m)\end{cases}
f[n][m]=⎩⎪⎨⎪⎧f[0][1]=1f[n][m]=f[n][n](n<m)f[n][m]=f[n−m][m]+f[n][m−1](n>=m)
ans=没有空盒+至少有一个空盒
换一种理解:ans=选择尽量放盒+不能选择球尽量放盒
2.球同,盒同,不空
(类似于整数拆分问题(不包含0))
f
[
n
]
[
m
]
=
f
[
n
−
1
]
[
m
−
1
]
+
f
[
n
]
[
m
−
1
]
f[n][m]=f[n-1][m-1]+f[n][m-1]
f[n][m]=f[n−1][m−1]+f[n][m−1]
a
n
s
=
ans=
ans=至少有一个盒子只有一个小球
+
+
+没有盒子只有一个小球的
换一种理解: a n s = ans= ans=没有新开小球+有新开小球
换一种理解:对于 m − 1 m-1 m−1个盒子,可以放 n n n 个小球也可以用放 n − 1 n-1 n−1个
3.球同,盒不同,不空
a n s = C n − 1 m − 1 ans=C^{m-1}_{n-1} ans=Cn−1m−1
把 n n n 个小球分为 m m m 分,在 n − 1 n-1 n−1 个空隙中插入 m − 1 m-1 m−1 个板
4.球同,盒不同,可空
a n s = C n + m − 1 m − 1 ans=C^{m-1}_{n+m-1} ans=Cn+m−1m−1
在 n n n 个小球中在放入 m m m 个“空球”,进行隔板法相当于没两个板之间可以多选择一个“空球”,也可以不选,也可以直选“空球”
5.球不同,盒同,不空
f [ n ] [ m ] = { f [ n ] [ 0 ] = f [ n ] [ m ] = 1 , f [ n ] [ n ] = 1 f [ n ] [ m ] = f [ n − 1 ] [ m − 1 ] + m f [ n ] [ m − 1 ] f[n][m] =\begin{cases}f[n][0]=f[n][m]=1,f[n][n]=1 \\f[n][m]=f[n-1][m-1]+mf[n][m-1]\end{cases} f[n][m]={f[n][0]=f[n][m]=1,f[n][n]=1f[n][m]=f[n−1][m−1]+mf[n][m−1]
根据 ( 2 ) (2) (2) 的式子再乘上个m即可,原因是新开的小球是可以放到m个盒子里面的。
这其实也是第二类斯特林数,
第二类斯特林数的递推式:
S
m
n
=
S
n
−
1
m
−
1
+
m
∗
S
n
−
1
m
S_{m}^{n}=S^{m-1}_{n-1}+m*S^{m}_{n-1}
Smn=Sn−1m−1+m∗Sn−1m
通项式:
S
m
n
=
1
m
!
∑
k
−
1
m
(
−
1
)
k
C
m
k
(
m
−
k
)
n
S^{n}_{m}=\frac{1}{m!}\sum_{k-1}^{m}(-1)^kC_{m}^{k}(m-k)^n
Smn=m!1k−1∑m(−1)kCmk(m−k)n
这点如果不是很理解,先看
(
7
)
(7)
(7) 的容斥思想
6.球不同,盒不同,可空
a n s = m n ans=m^n ans=mn
对于没一个小球都可以放在 m m m 个盒子里,且小球有标号
7.球不同,盒不同,不空
1.从 ( 6 ) (6) (6) 的基础上考虑容斥,
ans= m m m 个盒子 − 1 -1 −1 个盒子必空 + 2 +2 +2 个盒子必空 − 3 -3 −3 个盒子必空…… ( − 1 ) m − 1 (-1)^{m-1} (−1)m−1 m个盒子必空
得出:
m
n
−
(
n
1
)
(
m
−
1
)
n
+
(
n
2
)
(
m
−
2
)
n
−
…
=
∑
k
=
0
m
−
1
(
−
1
)
k
(
k
m
)
(
m
−
k
)
n
m^n-\dbinom{n}{1}(m-1)^n+\dbinom{n}{2}(m-2)^n-…=\sum_{k=0}^{m-1}(-1)^k\dbinom{k}{m}(m-k)^n
mn−(1n)(m−1)n+(2n)(m−2)n−…=k=0∑m−1(−1)k(mk)(m−k)n
a n s = ∑ k = 0 m − 1 ( − 1 ) k C k m ( m − k ) n ans=\sum_{k=0}^{m-1}(-1)^kC^{m}_{k}(m-k)^n ans=k=0∑m−1(−1)kCkm(m−k)n
2.从 ( 2 ) (2) (2)的基础上考虑排列:
由于这个盒子是不同的,所以直接 a n s = m ! S ( m , n ) ans=m!S(m,n) ans=m!S(m,n)
8.球不同,盒不同,可空
a n s = ∑ i = 0 m S ( n , i ) ans=\sum_{i=0}^{m} S(n,i) ans=i=0∑mS(n,i)
由于盒不同而且可空,就可以直接累加 ( 5 ) (5) (5) 即可。
这其实也是个 B e l l Bell Bell 数:第n个Bell数表示的是集合 [ 1 , 2 , … … , n ] [1,2,……,n] [1,2,……,n] 的划分方案数。
终于写完了,,还有个平面分割,先放个链接,回来补坑,,,拖着残废的胳膊完成的,,,,