第二类 Stirling 数学习小结
学习《组合数学》慕课课程的时候学到第二类 Stirling 数,慕课中讲得比较浅尝辄止;网上查了一圈,感觉没有对它的性质描述特别全面的资料。权当是写一份考试复习资料,写篇文章整理一下。
第二类 Stirling 数
定义
球盒模型
球盒模型可能是最简单朴素的定义方式之一,网上找到的也大多是这个定义。按此定义,第二类 Stirling 数
下降幂
另外一种比较具有组合意义的定义方式是利用下降幂(Falling Factorial)。
边界值
第二类 Stirling 数指出如何用一系列
相对而言,使用下降幂的定义才是真正的第二类 Stirling 数的定义。从它的名字就可以看出,由于有第二类 Stirling 数,就必然有第一类 Stirling 数,而这两类 Stirling 数一正一反地揭示了下降幂和普通代数幂之间的关系。事实上,
关于第一类 Stirling 数的讨论是题外话,我们不在此做过多展开。
递推式
一个非常重要的问题是,上述两种方式都定义了第二类 Stirling 数,然而它们是否等价?答案显然是等价,否则它们也不会都叫做第二类 Stirling 数。虽然很难优雅地将其中一个定义通过某些手段变换为另一个,但我们可以证明它们满足同样的递推关系,从而证明二者定义的是同一个东西。
为了方便起见,我们规定当
球盒模型
我们需要规定,如果没有小球也没有盒子,那么视为仅有一种放球方案(即,什么都不做)。这样一来,根据定义立即得到:
现在计算
- 出现了一个空盒:相当于把其余的小球放入
个盒子中,方案数为 ; - 没有出现空盒:相当于把其余的小球放入
个盒子中,再将 1 号小球放入任意一个盒子中,方案数为 。
于是可得:
下降幂
考察定义式
注意到
最后一步利用了
因此,上面两种定义得到的结果满足相同的递推关系、有相同的递推初值和边界值;从而,这两种定义是等价的。
一些边界值
除了上面得到的递推关系初值之外,我们还可以用球盒模型推导一些其他的边界值,用来方便一些情况下的计算:
这是将
这些形如
通过上面三个边界值可以找到规律
组合等式
慕课上讲到的唯一一个等式是第二类 Stirling 数的通项公式,当然由于其中使用了求和符号所以并不是解析式。这个通项是:
要求出这个式子有很多方法,我简单查找了一下就得到了二项式反演、容斥原理和生成函数三种方案。此处因为算是复习上课内容,所以就用生成函数来得到这个式子。
以球盒模型来考虑这个问题,为了方便,先讨论
将问题转化为排列计数之后,我们就可以利用指数型生成函数处理它:
因此
Upd:慕课后面又讲了使用容斥原理的计算方法,相比之下要直观许多。思路仍然是先计算
单峰性
慕课上留了一道很有意思的思考题:证明第二类 Stirling 数
所谓单峰,是指序列
然而,作为特殊计数序列的第二类 Stirling 数实际上具有比这更强的性质。下面我们详细定义第二类 Stirling 数所具有的单峰性:
对任意
或者
这也就是说,序列
这个结论我并不会证明,在网上找了很久也没有找到好的参考资料。所幸在一顿中英日语混合搜索过后,发现一篇证了此结论的论文;论文十分牛逼,摘要就一句话:
For fixed n , Stirling numbers of the second kind, S(n,r) have a single maximum.
接下来,我们复现这篇论文中的证明,但是有一点不同:论文中讨论了最值点的位置,但事实上,仅需证明单峰性的话是无需做这一讨论的。
另一个递推式
回顾一开始得到的递推式:
为了证明
这个公式很容易理解:首先把 1 号小球放入一个盒子中,剩下
完整证明
对
当
- 递增部分:证明对
有 成立 - 递减部分:证明对
有 成立
一旦二者都成立,讨论
递增部分
当
当
因此有
递减部分
当
当
因此有
由于两个子命题均已得证,因此归纳步骤也得证。根据第一类和第二类数学归纳法,原命题对全部非负整数