斯特林数

本文详细介绍了数学中的一类特殊数——斯特林数,包括第一类斯特林数的无符号版本及其求法、性质,以及第二类斯特林数的定义、求法和性质。斯特林数在组合数学中有广泛应用,它们描述了不同类型的划分问题。文章还给出了两类斯特林数之间的关系和一些通项公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

斯特林数有两类,分为第一类斯特林数和第二类斯特林数。

其中第一类斯特林数又有无符号版本和有符号的版本。这里主要介绍无符号版本。

第一类斯特林数

定义

1 − n 1-n 1n划分为 k k k个圆排列的方案数,这 k k k个圆排列相互之间没有顺序。记作 s ( n , k ) s(n,k) s(n,k) [ n k ] \begin{bmatrix}n \\k \end{bmatrix} [nk]

求法

[ n k ] = [ n − 1 k − 1 ] + ( n − 1 ) [ n − 1 k ] \begin{bmatrix}n \\k \end{bmatrix}=\begin{bmatrix}n-1 \\k-1 \end{bmatrix}+(n-1)\begin{bmatrix}n-1 \\k \end{bmatrix} [nk]=[n1k1]+(n1)[n1k]

推导的思路:
假设我们现在正在放第 n n n个数,我们目前有两种选择:

  1. n n n放到新的圆当中
  2. n n n放到已有的圆中

对于第一种选择,对于 n n n来说,放到新圆当中,只有一种放法。因此我们主要考虑前 n − 1 n-1 n1个数的放法即可。我们发现前 n − 1 n-1 n1个数的放法其实就是一个斯特林数 [ n − 1 k − 1 ] \begin{bmatrix}n-1 \\k-1 \end{bmatrix} [n1k1],也就是将 n − 1 n-1 n1个数划分为 k − 1 k-1 k1个圆排列的方案数。

对于第二种选择,对于 n n n来说,放到之前的圆排列中的方案数,我们可以根据下面的例子得出:
在这里插入图片描述
对于这个含有4个数的圆排列,现在我想往里面插入一个数,总共有几种方案?
可以发现,我们可以把新的数插入到 1 1 1的后面,或者到 2 2 2的后面,或者 3 3 3的后面,或者 4 4 4的后面,也就是图中的 a , b , c , d a,b,c,d a,b,c,d四个位置。总共有4种方案。

因此我们现在想将 n n n插入到之前已存在的圆排列当中,就相当于选择插入到哪个前 n − 1 n-1 n1个数的后面。因此,有 n − 1 n-1 n1种方案。

考虑了 n n n的插入放法,基于之前 n − 1 n-1 n1个数已经分成了 k k k个圆排列。因此最终第二种选择的方案数就是: ( n − 1 ) ∗ [ n − 1 k ] (n-1)*\begin{bmatrix}n-1 \\k \end{bmatrix} (n1)[n1k]

两种选择的方案数相加即可推出上式。

性质

  1. [ 0 0 ] = 1 \begin{bmatrix}0 \\0 \end{bmatrix}=1 [00]=1
  2. [ n n ] = 1 \begin{bmatrix}n \\n \end{bmatrix}=1 [nn]=1
  3. [ n 0 ] = 0 \begin{bmatrix}n \\0 \end{bmatrix}=0 [n0]=0
  4. [ n 1 ] = ( n − 1 ) ! \begin{bmatrix}n \\1 \end{bmatrix}=(n-1)! [n1]=(n1)!
    推导:
    这就相当于 n n n个数的圆排列。 n n n个数组成一个圆的方案数总共有 n ! n! n!种,不过,对于每种方案,都有 n n n个圆排列通过旋转可以与其相同,因此,不同的圆排列方案数有 n ! n = ( n − 1 ) ! \frac {n!}n=(n-1)! nn!=(n1)!
  5. [ n n − 1 ] = C n 2 \begin{bmatrix}n \\n-1 \end{bmatrix}=C_n^2 [nn1]=Cn2
  6. [ n 2 ] = 1 2 ∑ i = 1 n − 1 C n i ( i − 1 ) ! ( n − i − 1 ) ! = ( n − 1 ) ! ∑ i = 1 n − 1 1 i \begin{bmatrix}n \\2 \end{bmatrix}=\frac 12\sum_{i=1}^{n-1}C_n^i(i-1)!(n-i-1)!=(n-1)!\sum_{i=1}^{n-1}\frac 1i [n2]=21i=1n1Cni(i1)!(ni1)!=(n1)!i=1n1i1
    推导过程如下:
    1 2 ∑ i = 1 n − 1 C n i ( i − 1 ) ! ( n − i − 1 ) ! = 1 2 ∑ i = 1 n − 1 n ! i ( n − i ) = 1 2 ∑ i = 1 n − 1 ( n − 1 ) ! n i ( n − i ) = 1 2 ∑ i = 1 n − 1 ( n − 1 ) ! ( 1 i + 1 n − i ) = 1 2 ∗ 2 ∑ i = 1 n − 1 ( n − 1 ) ! 1 i = ( n − 1 ) ! ∑ i = 1 n − 1 1 i \frac 12\sum_{i=1}^{n-1}C_n^i(i-1)!(n-i-1)!=\frac 12\sum_{i=1}^{n-1}\frac {n!}{i(n-i)}=\frac 12\sum_{i=1}^{n-1}(n-1)!\frac n{i(n-i)}=\frac 12\sum_{i=1}^{n-1}(n-1)!(\frac 1i+\frac 1{n-i})=\frac 12*2\sum_{i=1}^{n-1}(n-1)!\frac 1i=(n-1)!\sum_{i=1}^{n-1}\frac 1i 21i=1n1Cni(i1)!(ni1)!=21i=1n1i(ni)n!=21i=1n1(n1)!i(ni)n=21i=1n1(n1)!(i1+ni1)=212i=1n1(n1)!i1=(n1)!i=1n1i1
    倒数第二步的推导,是由于 1 i \frac 1i i1 1 n − i \frac 1{n-i} ni1在取值范围内的值域相同,因此可以直接2倍。
  7. [ n n − 2 ] = 2 C n 3 + 3 C n 4 \begin{bmatrix}n \\{n-2} \end{bmatrix}=2C_n^3+3C_n^4 [nn2]=2Cn3+3Cn4
  8. ∑ k = 0 n s ( n , k ) = n ! \sum_{k=0}^ns(n,k)=n! k=0ns(n,k)=n!
    可以通过升阶函数证明。

第二类斯特林数

定义

1 − n 1-n 1n划分成 k k k个子集的方案数,记作 S ( n , k ) S(n,k) S(n,k) { n k } \begin{Bmatrix} n \\k \end{Bmatrix} {nk}

求法

S ( n , k ) = S ( n − 1 , k − 1 ) + k S ( n − 1 , k ) S(n,k)=S(n-1,k-1)+kS(n-1,k) S(n,k)=S(n1,k1)+kS(n1,k)

递推方式与第一类相同。

性质

  1. S ( n , 0 ) = 0 n S(n,0)=0^n S(n,0)=0n
  2. S ( n , 1 ) = 1 S(n,1)=1 S(n,1)=1
  3. S ( n , n ) = 1 S(n,n)=1 S(n,n)=1
  4. S ( n , 2 ) = 2 n − 1 − 1 S(n,2)=2^{n-1}-1 S(n,2)=2n11
    假设两个集合有序,那么 n n n个数插入两个集合的总方案数是 2 n 2^n 2n,由于两个集合都不能为空,因此方案数是 2 n − 2 2^n-2 2n2。最后因为两个集合不考虑相互位置,因此,总方案数是 ( 2 n − 2 ) / 2 = 2 n − 1 − 1 (2^n-2)/2=2^{n-1}-1 (2n2)/2=2n11
  5. S ( n , n − 1 ) = C n 2 S(n,n-1)=C_n^2 S(n,n1)=Cn2
  6. S ( n , n − 2 ) = C n 3 + 3 C n 4 S(n,n-2)=C_n^3+3C_n^4 S(n,n2)=Cn3+3Cn4
  7. S ( n , n − 3 ) = C ( n , 4 ) + 10 C ( n , 5 ) + 15 C ( n , 6 ) S(n,n-3)=C(n,4)+10C(n,5)+15C(n,6) S(n,n3)=C(n,4)+10C(n,5)+15C(n,6)
  8. ∑ k = 0 n S ( n , k ) = B n , B n 是 贝 尔 数 \sum_{k=0}^nS(n,k)=B_n,B_n是贝尔数 k=0nS(n,k)=Bn,Bn

通项公式

S ( n , m ) = 1 m ! ∑ k = 0 m ( − 1 ) k C ( m , k ) ( m − k ) n S(n,m)=\frac 1{m!}\sum_{k=0}^m(-1)^kC(m,k)(m-k)^n S(n,m)=m!1k=0m(1)kC(m,k)(mk)n

两类斯特林数的关系

∑ k = 0 n [ n k ] { k m } = ∑ k = 0 n { n k } [ k m ] \sum_{k=0}^n\begin{bmatrix}n \\k \end{bmatrix}\begin{Bmatrix}k \\m \end{Bmatrix}=\sum_{k=0}^n\begin{Bmatrix}n \\k \end{Bmatrix}\begin{bmatrix}k \\m \end{bmatrix} k=0n[nk]{km}=k=0n{nk}[km]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值