UNPKG

oi-wiki

Version:
37 lines (25 loc) 1.02 kB
## Stirling 数(子集划分) 根据例题来讲解:<br> (2007 普及)将$n$个$(12,…,n)$分成$r$个部分。每个部分至少一个数。将不同划分方法的总数记为$S_n^r$。例如,$S_4^2=7$,7 种不同的划分方法依次为 $\{\ (1) , (234) \}\,\{\ (2) , (134) \}\,\{\ (3) , (124) \}\,\{\ (4) , (123) \}\,\{\ (12) , (34) \}\,\{\ (13) , (24) \}\,\{\ (14) , (23) \}$。$n=6,r=3$时$S_6^3$=( )<br> > 提示:先固定一个数,对于其余的 5 个数考虑$S_5^3$与$S_5^2$,再分这两种情况对原固定的数进行分析。 题解:在近几年算法竞赛中,递推算法越来越重要: $$ S_6^3=3 \times S_5^3 + S_5^2 $$ $$ S_5^3=3 \times S_4^3 + S_4^2 $$ $$ S_5^2=2 \times S_4^2 + S_4^1 $$ 第二类 stirling 数,显然拥有这样的性质: $$ S_n^m = m \times S_{n-1}^{m} + S_{n-1}^{m-1} $$ $$ S_n^1 = 1,S_n^0 = 0,S_n^n = 1 $$ 而这些性质就可以总结成: $$ S_n^3 = \frac{1}{2} \times (3^{n-1}+1) - 2^{n-1} $$