1 卡塔兰数:
以k为轴划分子问题,左边子问题的解的个数和右边子问题的解的个数是原问题以k为轴的解法的2个独立步骤,适用乘法原理;分别以1,2,。。。n为轴,是原问题的n种解法,适用加法原理。
f(n) = f(0)f(n-1) + f(1)f(n-2) + ... + f(n-1)f(0)
= f(k-1)f(n-k) k=1...n
2. 错排公式:
第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;
第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法;⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有D(n-1)种方法,为什么?因为有n-1个元素和位置,每个元素都有一个位置不能放,对于其他元素,这个位置就是它自己的位置,对于k,这个位置就是位置n,等价n - 1个元素的错排问题。
综上得到
D(n) = (n-1) * (D(n-2) + D(n-1)) 斐波那契数列多乘了个n-1
把包含n个元素的集合划分为k个非空子集的的方案数:
递推公式:
S(n,0) = 0
S(n,1) = 1 (k = 1)
S(n,n) = 1
S(n,k) = 0 (k > n)
S(n,k) = S(n-1,k-1)+k*S(n-1,k) (n >= k >= 2)
4. 贝尔数:
B(n)是包含n个元素的集合的划分方法的数目
B(n) = S(n,1) + S(n, 2) + ... + S(n, n) 计算sterling数的dp表最后一行加起来就是贝尔数