一个排列组合的题:把n个不同的球放入m个不同的盒子里且盒子都不能空,有多少种方法?谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个排列组合的题:把n个不同的球放入m个不同的盒子里且盒子都不能空,有多少种方法?谢谢相关的知识,希望对你有一定的参考价值。

C(n-1,m-1)

理由是:先设盒子按顺序放的。每个里面都放了一个球,则剩下了N-M个球,把他们要放到M个盒子里面,问题就转化了。

变成了把A个球放入B个盒子的不同方法的问题。这里的A=N-M,而B=M.

后面问题的答案是C(A+B-1,B-1)。

所以答案就是C(N-1,M-1).

两个常用的排列基本计数原理及应用

1、加法原理和分类计数法:

每一类中的每一种方法都可以独立地完成此任务;两类不同办法中的具体方法,互不相同(即分类不重);完成此任务的任何一种方法,都属于某一类(即分类不漏)。

2、乘法原理和分步计数法:

任何一步的一种方法都不能完成此任务,必须且只须连续完成这n步才能完成此任务;各步计数相互独立;只要有一步中所采取的方法不同,则对应的完成此事的方法也不同。

参考技术A Copyright © 1999-2020, CSDN.NET, All Rights Reserved

领红包+快速涨粉!CSDN 测评赛开启
登录

逍遥丶綦
关注
排列组合 "n个球放入m个盒子m"问题 总结 原创
2016-02-12 15:11:17
42点赞

逍遥丶綦

码龄12年

关注
求,盒子都可以分成是否不能区分,和能区分,还能分成是否能有空箱子,所以一共是8种情况,我们现在来一一讨论。

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

C(n-1,m-1), n>=m
0, n<m

使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙即可

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

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

我们在第1类情况下继续讨论,我们可以先假设m个盒子里都放好了1个球,所以说白了就是,现在有m+n个相同的球,要放入m个不同的箱子,没有空箱。也就是第1种情况

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

第二类斯特林数dp[n][m]
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

这种情况就是第二类斯特林数,我们来理解一下这个转移方程。

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

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

其他的都没法转移过来

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

sigma dp[n][i],0<=i<=m,dp[n][m]为情况3的第二类斯特林数

这种情况就是在第3种情况的前提下,去枚举使用的箱子的个数

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

dp[n][m]*fact[m],dp[n][m]为情况3的第二类斯特林数,fact[m]为m的阶乘

因为球是不同的,所以dp[n][m]得到的盒子相同的情况,只要再给盒子定义顺序,就等于现在的答案了

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

power(m,n) 表示m的n次方

每个球都有m种选择,所以就等于m^n

7.球同,盒同,允许空箱

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

现在有n个球,和m个箱子,我可以选择在所有箱子里面都放上1个球,也可以不选择这个操作。

如果选择了这个操作,那么就从dp[n-m][m]转移过来

如果没有选择这个操作,那么就从dp[n][m-1]转移过来

8.球同,盒同,无空箱

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

因为要求无空箱,我们先在每个箱子里面放1个球,然后还剩下n-m个球了,再根据情况7答案就出来了

如果有错误,希望菊苣指出~

转载请注明出处...
参考技术B C(n-1,m-1)
理由是:先设盒子按顺序放的。每个里面都放了一个球,则剩下了N-M个球,把他们要放到M个盒子里面,问题就转化了。
变成了把A个球放入B个盒子的不同方法的问题。这里的A=N-M,而B=M.
后面问题的答案是C(A+B-1,B-1)。
所以答案就是C(N-1,M-1).
参考技术C n!S(m,n)
用容斥原理 0

分给我
最好给多点
参考技术D http://chensmiles.blog.163.com/blog/static/121463991200962113136292/
这里说的比较详细,你可以自己去看!本回答被提问者采纳

排列组合

n个不同的球放入m个不同的盒子

(1)盒子可为空(n>=m):

证明:易计算的结果为m^n;

(2)盒子不可为空(n>=m):

证明:先从n个球中选出m个(C(n,m)),然后将m个球放入m个盒子里且每个盒子至少有一个(m!),剩下的n-m个球再放入这m个盒子(m^(n-m))(类似于上面);

所以结果为C(n,m)*(m!)*(m^(n-m));

(3)n<m(必须可为空):

证明:先选出n个盒子(C(m,n)),然后就是n个不同的球放入n个不同的盒子(n^n),

所以结果:C(m,n)*(n^n).

 

以上是关于一个排列组合的题:把n个不同的球放入m个不同的盒子里且盒子都不能空,有多少种方法?谢谢的主要内容,如果未能解决你的问题,请参考以下文章

排列组合

排列组合(盒子放球)

[排列组合 球盒 第二类Stirling数] P1287 盒子与球

排列组合+组合数取模 HDU 5894

随机产生N个1,1000之间不重复的整数存入数组A中,并按从大到小顺序排列。键入整数X,查找:若无,则插入,

第二类斯特林数