CSP初赛复习-30-第二类斯特林数

第二类斯特林数

第二类斯特林数S(n,m)表示的是把n个不同的小球放在m个相同的盒子里方案数

第二类斯特林数 -递推式

S(n,m)=S(n-1,m-1)+m * S(n-1,m)
其中
S(0,0)=1
S(n,0)=0
S(n,1)=1
S(n,n)=1

递推式分析

考虑放入第n个元素时,有2中情况n单独放入一个盒子和n不单独放入一个盒子

n单独放入一个盒子

n单独放入一个盒子,其余的n-1个小球放入剩余盒子

相当于把n-1个不同小球放入m-1个相同的盒子

S(n-1,m-1)

n不单独放入一个盒子

n不单独放入一个盒子,其实n-1个小球已经放入到m个相同的盒子内,此时方案数为

S(n-1,k)

然后把n分别放入m个盒子

n放入其中一个盒子(盒子M1),方案数为

S(n-1,k)

n放入盒子M2,方案数为

S(n-1,k)

n放入盒子Mm,方案数为

S(n-1,k)

所以总方案数为

m * S(n-1,k)

上述2种情况根据加法原理得到第二类斯特林数 -递推式

S(n,m)=S(n-1,m-1)+m * S(n-1,m)

第二类斯特林数计算

有了递推式,可以有2种方法计算,分别是递归法和递推法

一般使用递归法适合计算量特别小,递推式比较简单的情况,更直观的可以使用递推法从小到大计算出对应的数值,记录表格,防止重复计算

具体可以参考如下斯特林三角计算方法

第二类斯特林三角

球盒问题和第二类斯特林数

1 n个不同的小球,放入m个相同的盒子,不允许盒子为空,方案数多少?

分析

第二类斯特林数的定义

方案数

S(n,m)//根据定义带入第二类斯特林三角计算

2 n个不同的小球,放入m个相同的盒子,允许为空,方案数多少?

分析

允许盒子为空的情况,可以枚举几个盒子为空时对应非空盒子的情况,每种情况符合第二类斯特林数定义

可能存在,1个盒子非空,2个盒子非空...,m个盒子非空

对应方案数

S(n,1)+S(n,2)...S(n,m)

3 n个不同的小球,放入m个不同的盒子,不允许盒子为空,方案数多少?

分析

盒子不同,可以看作盒子相同时为其中一步: S(n,m)

在盒子相同基础上在考虑盒子不同的方案数: m!

分2步,根据乘法原理

方案数

S(n,m) * m!

4 n个不同的小球,放入m个不同的盒子,允许盒子为空,方案数多少?

分析

允许盒子为空的情况,可以枚举几个盒子为空时对应非空盒子的情况

1个盒子非空时

分2步

第1步,考虑n个不同小球,放入1个盒子,盒子不允许为空的方案数

第二类斯特林数 S(n,1)

第2步,考虑盒子不同,因为只有1个,所以为1种

方案数

S(n,1) * 1
//也可以表示
S(n,1) * 1!

2个盒子非空时

分2步

第1步,考虑n个不同小球,放入2个盒子,盒子不允许为空的方案数

第二类斯特林数 S(n,2)

第2步,考虑盒子不同,2个盒子全排列,所以为2!种

方案数

S(n,2) * 2!

m个盒子非空时

分2步

第1步,考虑n个不同小球,放入3个盒子,盒子不允许为空的方案数

第二类斯特林数 S(n,3)

第2步,考虑盒子不同,3个盒子全排列,所以为m!种

方案数

S(n,m) * m!

所以总的方案数

S(n,1) * 1! + S(n,2) * 2! + .... + S(n,m) * m!

CSP初赛复习-30-第二类斯特林数-练习题
https://www.cnblogs.com/myeln/articles/17666033.html

posted @ 2023-08-29 22:39  new-code  阅读(166)  评论(0)    收藏  举报