「笔记」斯特林数
第一类斯特林数
定义
\(\begin{bmatrix}n\\m\end{bmatrix}\)
表示把\(n\)个数分入\(m\)个非空环排列的方案数
假设有三个数\(1,2,3\),要组成\(1\)个圆排列,因为是在一个圆上排列,所以\(1,2,3\)这个排列和\(3,1,2\)这个排列是一样的
递推公式
如何得出?
考虑最后一个放进去的数有几种放的方法:
- 新增一个圆排列
这样的方案就是\(\begin{bmatrix}n-1\\m-1\end{bmatrix}\),意思是把前面\(n-1\)个数放到\(m-1\)个圆排列里,然后这一个数独成一个圆排列 - 插入到\(n-1\)个数中的一个的后面
这样的方案是\((n-1)\cdot\begin{bmatrix}n-1\\m\end{bmatrix}\)
总方案数就是两种加起来
第二类斯特林数
定义
\(\begin{Bmatrix}n\\m\end{Bmatrix}\)
表示把\(n\)个数分入\(m\)个非空集合的方案数
一般如果不特殊强调,集合都是不可以区分的,什么意思呢?
还是假设我们有三个数\(1,2,3\),要把他们放到两个集合中,那么\(\{1,2\},\{3\}\)和\(\{3\},\{1,2\}\)这两种分法是一样的,也就是说集合是没有先后顺序这一说的
递推公式
如何得出?
我们知道,这是要把\(n\)个数放到\(m\)个集合中,还是考虑最后一个放进去的数有几种放的方法
- 独成一个集合
这样的方案就是\(\begin{Bmatrix}n-1\\m-1\end{Bmatrix}\),意思是把前面\(n-1\)个数放到\(m-1\)个集合里,然后这一个数独成一个集合 - 塞到已存在的集合里
如果是这样的话,那么前面的\(n-1\)个数一定已经组成了\(m\)个集合,而这最后一个数可以往其中任何一个集合里放,所以就是\(m\cdot\begin{Bmatrix}n-1\\m\end{Bmatrix}\)
总的方案数就是加起来
通项公式
考虑把集合无标号强行当成有标号来做。
有标号的方案数\(\div\ m!\)得出的就是无标号的方案数
因为在一个合法的方案里,是不会存在空集合的,一个无标号的方案就可以对应\(m!\)个有标号的方案数
所以得出有标号的方案数再\(\div\ m!\)就可以得出无标号的方案数
因此问题就转化为了如何求\(m\)个非空有标号的集合的方案数
考虑容斥来摆脱非空的限制。
考虑至少有\(k\)个空集合时的方案数
\(k\)个必空集合的方案数为\(\dbinom{m}{k}\)
剩下的\(m-k\)个集合中要放\(n\)个数字,每个数字可以有\(m-k\)种选法,这样的方案是\((m-k)^n\)
因此至少有\(k\)个空集合时的方案数为\(\dbinom{m}{k}(m-k)^n\)
乘上容斥系数,再除以\(m!\),就可以得出上面的式子了
下降幂和上升幂
下降幂
定义
用\(n^{\underline m}\)表示\(n\times(n-1)\times(n-2)\times …\times(n - m + 1)\),称作\(n\)的\(m\)次下降幂
小结论
认真思考、仔细观察、发出小夫的声音不难看出
- \(n^{\underline m}=n\times(n-1)\times…\times(n-m+1)=\dfrac{n!}{(n-m)!}=A_n^m\)
定理
证明
考虑\(n^m\)的组合意义:\(m\)个有标号的球放到\(n\)个有标号的盒子中的方案数,没有非空限制
枚举\(i\),表示有多少个非空的盒子,将\(m\)个球分配到这\(i\)个盒子中
由第二类斯特林数通项公式证明可得,无标号的方案乘以\(i!\)就变成了有标号的方案数,由此可得
其中\(\dbinom{n}{i}i!\)就是\(A_n^i\)也就是\(n^{\underline i}\)
所以原式化为
得证。
性质
证明可以用数学归纳法,不难证,自己证下吧!
上升幂
定义
\(n\)的\(m\)次上升幂定义为:
定理
实现了把上升幂转化为通常幂
证明
采用数学归纳法证明
-
\(m=1\)时显然成立,两边都是\(n\)
-
当\(m>1\)时,考虑把\(n^\overline m\)的最后一项提出来
\[n^\overline m=(n + m -1)\times n^\overline{m-1} \]根据归纳假设进一步转化
\[\begin{aligned}n^\overline m=& (n + m - 1) \times\sum\limits_{i=0}^{m- 1}\begin{bmatrix}m-1\\i\end{bmatrix}n^i\\=&n\times\sum\limits_{i=0}^{m-1}\begin{bmatrix}m-1\\i\end{bmatrix}n^i+(m-1)\times\sum\limits_{i=0}^{m-1}\begin{bmatrix}m-1\\i\end{bmatrix}n^i\\=&\sum\limits_{i=0}^{m-1}\begin{bmatrix}m-1\\i\end{bmatrix}n^{i+1}+\sum\limits_{i=0}^{m-1}(m-1)\begin{bmatrix}m-1\\i\end{bmatrix}n^i\\=&\sum\limits_{i=1}^m\begin{bmatrix}m-1\\i-1\end{bmatrix}n^i+\sum\limits_{i=0}^{m-1}(m-1)\begin{bmatrix}m-1\\i\end{bmatrix}n^i\end{aligned} \]发现两个表达式中都有\(n^i\),所以把\(n^i\)合并同类项试试
但是又发现两个式子的边界是不同的,不过没关系,化出来发现这新增的两项是没有意义的,无贡献
\[\begin{aligned}&\sum\limits_{i=1}^m\begin{bmatrix}m-1\\i-1\end{bmatrix}n^i+\sum\limits_{i=0}^{m-1}(m-1)\begin{bmatrix}m-1\\i\end{bmatrix}n^i\\=&\sum\limits_{i=0}^mn^i\left(\begin{bmatrix}m-1\\i-1\end{bmatrix}+(m-1)\begin{bmatrix}m-1\\i\end{bmatrix}\right)-\begin{bmatrix}m-1\\0-1\end{bmatrix}n^0+\begin{bmatrix}m-1\\m\end{bmatrix}n^m\\=&\sum\limits_{i=0}^mn^i\left(\begin{bmatrix}m-1\\i-1\end{bmatrix}+(m-1)\begin{bmatrix}m-1\\i\end{bmatrix}\right)\end{aligned} \]有没有觉得括号里的式子有些熟悉,没错,就是第一类斯特林数的递推式,所以我们就得到了
\[\sum\limits_{i=0}^mn^i\left(\begin{bmatrix}m-1\\i-1\end{bmatrix}+(m-1)\begin{bmatrix}m-1\\i\end{bmatrix}\right)=\sum\limits_{i=0}^mn^i\begin{bmatrix}m\\i\end{bmatrix}= \sum\limits_{i=0}^m\begin{bmatrix}m\\i\end{bmatrix}n^i \]
综合上面两种情况,得证。