700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 排列组合问题 “n个球放入m个盒子(8种)”

排列组合问题 “n个球放入m个盒子(8种)”

时间:2022-10-13 08:04:25

相关推荐

排列组合问题 “n个球放入m个盒子(8种)”

1.球相同,盒相同,允许空箱

2.球相同,盒相同,无空箱

3.球相同,盒不同,无空箱

4.球相同,盒不同,允许空箱

5.球不同,盒相同,无空箱

6.球不同,盒相同,允许空箱

7.球不同,盒不同,无空箱

8.球不同,盒不同,允许空箱

n个球放入m个盒子

一共是上述八种情况,现在具体来思考一下分别应该怎么做

1.球相同,盒相同,允许空箱

n个球,m个盒子,两种选择,一个是把所有箱子都放一个球,这样的话就和 dp[n-m][m]相同了

不这么做,这样就和dp[n][m-1]相同了

因为球和盒子都相同,还允许空的

所以:

①dp[n][m]=dp[n][m-1]+dp[n-m][m], n>=m

②dp[n][m]=dp[n][m-1], n<m

边界dp[k][1]=1,dp[1][k]=1,dp[0][k]=1

2.球相同,盒相同,无空箱

现在有n个球和m个箱子,无空箱的话,先每个箱子放一个球 剩n-m个球,结果就是dp[n-m][m] 了,同上

①dp[n-m][m],dp同第7种情况,n>=m

②0, n<m

3.球相同,盒不同,无空箱

插板法:n个球中间有n-1个间隙,在里面选出m-1个间隙来 就行

①n>=m,C(n-1,m-1);

②n<m,0

4.球相同,盒不同,允许空箱

给每个盒子一个球,即转化成了不允许空箱的情况

C(n+m-1,m-1);

5.球不同,盒相同,无空箱 (第二类斯特林数)

对于第n个球,如果前面的n-1个球已经放在了m个箱子里,那么现在第n个球放在哪个箱子都是可以的,所以m*dp[n-1][m];

如果前n-1个球已经放在了m-1个箱子里,那么现在第n个球必须要新开一个箱子来存放,所以dp[n-1][m-1]

所以:

①dp[n][m]=m*dp[n-1][m]+dp[n-1][m-1],1<=m<n

dp[k][k]=1,k>=0

dp[k][0]=0,k>=1

②0,n<m

6.球不同,盒相同,允许空箱

先把不允许空箱的所有情况都算出来,再把n个球时的所有情况做一个累加

sigma dp[n][i],0<=i<=m;

7.球不同,盒不同,无空箱

dp[n][m]是盒子相同时的情况,如果盒子不同的话,球不同时的情况应该乘上盒子(m)的阶乘

dp[n][m]*m的阶乘

8.球不同,盒不同,允许空箱

这个应该是最好想的一种情况

m的n次方 每一个球都有m中选择;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。