排列组合
根本思想还是组合数学的加法原则,将一个状态分成几个不相交的状态,然后用加法原则加起来即可
1.球同,盒不同,无空箱
如果:n>=m
否则 n<m
分析 :
使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙即可。
2.球同,盒不同,允许空箱
我们在第1类情况下继续讨论,我们可以先假设m个盒子里都放好了1个球,所以说白了就是,现在有m+n个相同的球,要放入m个不同的箱子,没有空箱。也就是第1种情况
3.球不同,盒相同,无空箱
第二类斯特林数dp[n][m]
dp[n][m]表示n个球 m个盒子的方法数
分两种状态
1.第n个球单独在一个盒子里 有dp[n-1][m-1]
2.第n个球不单独在一个盒子里 有m*dp[n-1][m]
边界条件:
dp[k][k]=1, k>=0
dp[k][0]=0,k>=1
0,n<m
4.球不同,盒相同,允许空箱
枚举使用箱子的个数即可 此时的dp[n][m]是情况三的第二类的斯特林数
5.球不同,盒不同,无空箱
因为球是不同的,所以dp[n][m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了
6.球不同,盒不同,允许空箱
power(m,n) 表示m的n次方
每个球都有m种选择,所以就等于m^n
7.球同,盒同,允许空箱
n个球m个盒子,分两种情况
dp[n][m]代表n个球m个盒子允许空箱的个数
两种状态
1.每个盒子至少有一个球 有dp[n-m][m]种情况
2.至少有一个盒子没有球 有dp[n][m-1]种情况
n-m>=0:
n<m:
8.球同,盒同,无空箱
dp[n-m][m],dp同第7种情况,n>=m 0, n<m
因为要求无空箱,我们先在每个箱子里面放1个球,然后还剩下n-m个球了,再根据情况7答案就出来了