1.错位排列递推公式
f [ 1 ] = 0 f [ 2 ] = 1 f [ 3 ] = 2 f [ 4 ] = 9 f [ n ] = ( n − 1 ) ∗ ( f [ n − 1 ] + f [ n − 2 ] ) ( n > = 3 ) f[1]=0 \\ f[2]=1\\ f[3]=2\\ f[4]=9 \\ f[n]=(n-1)*(f[n-1]+f[n-2]) (n>=3) f[1]=0f[2]=1f[3]=2f[4]=9f[n]=(n−1)∗(f[n−1]+f[n−2])(n>=3)
2.卡特兰公式
C
(
2
∗
n
,
n
)
/
(
n
+
1
)
C(2*n,n)/(n+1)
C(2∗n,n)/(n+1)
f[1]=1
f[2]=2
f[3]=5
f[4]=14
f[5]=42
适用:
二叉树计数问题
出栈序列问题
凸多边形划分
n步向右,n步向左,有几种方法使得左下角走到右上角,并且只出现在下面的三角形里面
3.二叉树重要公式
n
0
=
n
2
+
1
n0=n2+1
n0=n2+1
证明方法:总的节点数量=儿子的数量+1
n 0 + n 1 + n 2 = 1 ∗ n 1 + 2 ∗ n 2 + 1 n0+n1+n2=1*n1+2*n2+1 n0+n1+n2=1∗n1+2∗n2+1
4.杨辉三角形递推公式
c [ i ] [ j ] = c [ i − 1 ] [ j − 1 ] + c [ i − 1 ] [ j ] c[i][j]=c[i-1][j-1]+c[i-1][j] c[i][j]=c[i−1][j−1]+c[i−1][j]
5.第二类stiring数
有n个不同的球,放到m个相同的盒子里,要求无一空盒,有几种方法(球盒问题)
s
(
n
,
m
)
=
s
(
n
−
1
,
m
−
1
)
+
s
(
n
−
1
,
m
)
∗
m
s(n,m)=s(n-1,m-1)+s(n-1,m)*m
s(n,m)=s(n−1,m−1)+s(n−1,m)∗m
边界:
s(n,n)=s(n,1)=1