当前位置: 代码迷 >> 综合 >> 斯特林数(Stirling)
  详细解决方案

斯特林数(Stirling)

热度:46   发布时间:2024-01-12 20:55:13.0

第一类斯特林数

      第一类斯特林数表示的是将n个不同元素分成k个不同的环的方案数。两个环不相同当且仅当这两个环不能通过旋转得到。记作s(n,k).

s(n,k)的递推公式: s(n,k)=(n-1)*s(n-1,k)+s(n-1,k-1) ,1<=k<n

边界条件:s(n,0)=0 ,n>=1  s(n,n)=1  ,n>=0

递推关系的说明:

1.考虑第n个物品,n可以单独构成一个非空循环排列,这样前n-1种物品构成k-1个非空循环排列,方法数为s(n-1,k-1);

2.也可以前n-1种物品构成k个非空循环排列,而第n个物品插入第i个物品的左边,这有(n-1)*s(n-1,k)种方法。

第二类斯特林数

      第二类t斯特林数是集合的一个拆分,表示将n个不同的元素拆分成k个集合的方案数,记为 s(n,m),描述为:将n个不同的球放入k个无差别的盒子中,要求盒子非空,有几种方案?

S(n,k)的递推公式是:S(n,k)=k*S(n-1,k)+S(n-1,k-1) ,1<= k<n

边界条件:S(n,0)=0 ,n>=1 S(n,n)=1 ,n>=0   //两类的边界条件相同,递推公式不同

递推关系的说明:

1.考虑第p个物品,p可以单独构成一个非空集合,此时前p-1个物品构成k-1个非空的不可辨别的集合,方法数为S(p-1,k-1);

2.也可以前p-1种物品构成k个非空的不可辨别的集合,第p个物品放入任意一个中,这样有k*S(p-1,k)种方法。

//注:对于第二种斯特林数k!*s(n,k)表示n个不同的元素拆分成的k个集合的内部有序

//注:bell数,B(n)=\sum_{k=1}^{n}\ s(n,k):This is the link