斯特林数 [Stirling Numbers]

斯特林数 [Stirling Numbers]

第二类斯特林数:f(n,k)表示划分n个数为k个非空子集的划分方式的个数

例如:n = 4、k = 2 有

{1,2,3}U{4}、{1,2,4}U{3}、{1,3,4}U{2}、{2,3,4}U{1}

{1,2}U{3,4}、{1,3}U{2,4}、{1,4}U{2,3}

因此,f(4,2) = 7

对于k = 0,易知f(n, 0) = 0 n > 0,对于k = 1,只有一种方式将n个非空元素放到一个非空子集中,故f(n,1) = 1

对于k = 2,f(0,2) = f(1,2) = 0,n >= 2时

考虑最后一个数,设包含最后元素的集合为A,则A包含最后一个元素及剩下的n - 1个元素中的某些元素

由于前n - 1个元素都可以选择放或者不放到集合B中,则对于集合B有2^(n - 1)中方式,除去集合为空的情况共
2^(n - 1) - 1种分法

即:f(n, 2) = 2^(n - 1) - 1  n > 0

考虑更一般的情况,f(n, k),对于最后一个元素,我们可以将其单独放某集合中,或者和前n - 1个中的某些元素一起放某集合中

第一种情况即将剩下的n - 1个元素放k - 1个集合中,即f(n - 1, k - 1)

第二种情况有f(n - 1, k)种方式将前n - 1个元素放k个非空集合,对于每一种划分,最后一个元素都可以放入该k个集合的任何一个子集中,

所以共有k*f(n - 1, k)种综上有:

f(n, k) = k * f(n - 1, k - 1) + f(n - 1, k)  n > 0

第一类斯特林数:是n个元素的集合分作k个环排列的方法数目,用g(n, k)表示

例如循环列[A,B,C,D],则和它等价的循环列为[B,C,D,A],[C,D,A,B],[D,A,B,C]。PS:只能同向转

当n = 4,k = 2时,有:

[1,2,3][4], [1,2,4][3], [1,3,4][2], [2,3,4][1], [1,3,2][4], [1,4,2][3], [1,4,3][2], [2,4,3][1]

[1,2][3,4], [1,3][2,4], [1,4][2,3]

即g(4, 2) = 11
k = 1时,对于n个数的全排列为n!,对于每一个环排列,转动n次,可以得到n个不同的排列,故g(n, 1) = (n - 1)!

对于g(n, k),我们可以参考f(n, k)的求法,考虑最后一个元素,我们可以将其单独放一循环列中,

此时结果为g(n - 1, k - 1),也可以将其插入到有前n - 1个元素分得的的k个环排列中

对于一个有n个数的环排列,插入一个数有n中方法

如插入D到[A,B,C]中有:[A,B,C,D], [A,B,D,C], [A,D,B,C]三种

所以将最后一个元素放入前n - 1个元素组成的每种环排列方案中有n - 1种方式

所以得到:g(n, k) = (n - 1)g(n - 1, k) + g(n - 1, k -1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值