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

排列组合 n个球放入m个盒子问题 总结

时间:2021-01-20 06:55:43

相关推荐

排列组合 n个球放入m个盒子问题 总结

算法:

HDU - 6397 Character Encoding 插板法+容斥原理/xiang_6/article/details/81868989

[ACM] POJ 1664 放苹果(n个相同小球放入m个相同盒子)/sr_19930829/article/details/38293297

m个相同的bean和n棵不同的树,每棵树可以放也可以不放beans/moon_sky1999/article/details/81835284

n个球放入m个盒子,使用程序输出所有的放法? /question/51448931

1、球同,盒同,盒不可以为空Pm(N)--这符号表示部分数为m的N-分拆的个数,m是P的下标,为了好看我将大写的M弄成小写

2、球同,盒同,盒可以为空Pm(N+M)--为什么要加M,与4为什么要在3的基础上加M是一样的,就是为了保证不为空

3、球同,盒不同,盒不可以为空C(N-1, M-1)

4、球同,盒不同,盒可以为空 C(N+M-1, M-1)

5、球不同,盒同,盒不可以为空S(N, M) --第二类斯特林数

6、球不同,盒同,盒可以为空S (N, 1) + S(N, 2) + S(N, 3) + ... + S(N, M)

7、球不同,盒不同,盒不可以为空M! * S(N, M)

8、球不同,盒不同,盒可以为空M^N--表示M的N次方

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答案就出来了

对以上1,2,5,6,7,8公式作解释说明,3,4不用解释了,插板法

先说:

8、球不同,盒不同,盒可以为空M^N

不妨设这N个小球为a1 , a2 ,…,an.首先把a1 放进盒子里,因为M个盒子是不同的,所以有M种放法,同理,a2 ,…,an放进盒子里都有M种放法,依乘法原则知不同的方案数 N= M*M*。。。M(共N个)=M^N

例8-1:8个不同的球放进3个不同的盒子里,有几种方法?

每个球都有3种选择,8个球就有3^8=6561

例8-2:某单位今年新进了3个工作人员,可以分配到3个部门,但每个部门至多只能接收2个人,问:共有几种不同的分配方案?

A.12 B.16 C.24 D.以上都不对

3^3-3=24

--------------------------------------------------------------------

接下来说:

1、球同,盒同,盒不可以为空Pm(N)

2、球同,盒同,盒可以为空Pm(N+M)

----------------------------------------------

首先要记得:

P1(n)=1 , Pn(n)=1, Pn-1(n)=1

P2(n)=[n/2]--[]表示不超过n/2的最大整数

Pn+1(n)=0 --或者表示没意义,因为n个球要放到n+1个盒子中,又不允许为空,没意义。

公式:Pm(N)=P1(N-m)+P2(N-m)+P3(N-m)+......+Pm(N-m) ------(共M项)

有人可能会说上面这几个都难得记,你只要明白拆分或结合实际意思就容易知道了,比如Pn(n)=1,n个球放n个盒子,每个盒子又不能为空,肯定只有1种。

--------------------------------------------------------------------------------

例2-1:7个相同球放入4个相同盒子,每盒至少一个,有多少种放法?

方法一,公式法。

代入公式:Pm(N)=P1(N-m)+P2(N-m)+P3(N-m)+......+Pm(N-m)

P4(7)=P1(3)+P2(3)+P3(3)-------P4(3),没意义省去

=1+1+1

=3,故有3种

方法二,拆数法。

1、先每个盒子放一个,还剩下3个球;

2、把“3”这个数拆成4个数(因为4个盒子)有如下:

30002100 1110---------拆数时不考虑顺序

---------------------------------------------------------------------------------------

例1-1:7个相同球放入4个相同盒子,可以空盒,有多少种放法?

方法一,公式法。

代入公式:Pm(N)=P1(N-m)+P2(N-m)+P3(N-m)+......+Pm(N-m)

P4(7+4)= P4(11)

=P1(7)+P2(7) +P3(7) +P4(7)

=1+3+(P1(4)+ P2(4)+ P3(4))+( P1(3)+ P2(3)+ P3(3)+ P4(3))

=1+3+(1+2+1)+(1+1+1+0)

=4+4+3

=11,故有11种

方法二,拆数法。

1、先借4个球来,每个盒子放一个,还剩下7个球;

2、把“7”这个数拆成4个数(因为4个盒子)有如下:

00070016 0025 0034 0115 0124 0133 0223 1114 1123 1222

--------------------------------------------------------------------------------

例2-2:10个相同的小球放进5个相同的盒子,使得无一空盒,共有多少种放法?

解析:

10个放了5个,还有5个。

5个放到1个盒,放到2个盒,放到3个盒。。。。放到5个盒,列式:

P5(10)

=P1(5)+P2(5)+P3(5)+P4(5)+P5(5)

=1+2+[P1(2)+P2(2)]+1+1

=1+2+[1+1]+1+1

=7

--------------------------------------------------------------------------------

最后来说复杂的:

5、球不同,盒同,盒不可以为空S(N, M)

6、球不同,盒同,盒可以为空S (N, 1) + S(N, 2) + S(N, 3) + ... + S(N, M)

7、球不同,盒不同,盒不可以为空M! * S(N, M)

--------------------------------------------------------------------------------

上面就是传说的:第二类斯特林数(第二类Stirling数)----可以百度下

S(N, M)表示什么意思呢?就是第N行M列的数字,例如S(7, 3)就是第7行第3个数字。

--------------------------------------------------------------------------------

5-1:8个不同的球放进3个相同的盒子里,每盒至少一个,有几种方法?

公式法:S(N, M)=S(8, 3)。第8行的第3列,对着表格找相应的数为966

--------------------------------------------------------------------------------

6-1:8个不同的球放进3个相同的盒子里,有几种方法?

公式法:S(8,3)=S (8, 1) + S(8, 2) + S(8, 3)=1+127+966=1094。即为第8行前3列的和。

注:这种类型结合第8种更简单些,在例8-1中,3个元素都相异,比如116,一共有6种排列(球是不同的),此问中,盒子是相同的,因此这6种排列都只算一种情况。但如果2个元素相同的时候,有且只有 008,只有3种排列,我们多添加3种进去,令其也重复6次,则(6561+3)就是所有的情况都重复了6次,(6561+3)/6=1094即为所求。

--------------------------------------------------------------------------------

7-1:8个不同的球放进3个不同的盒子里,每盒至少一个,有几种方法?

公式:M! * S(N, M)=3!*S(8, 3)=6*966=5796

7-2:4名教师分派到3所中学任教,每所至少1名教师,则有不同的分派方案多少种?

公式:M! * S(N, M)=3!*S(4, 3)=6*6=36

--------------------------------------------------------------------------------

现在剩下怎么记上面这个表格了,其实记这个表格非常简单:

1、先写好行号1---9和列号1---9。

2、然后前3个数字写1。

4、左右两边都是1,第几行就有几个数,比如第5行就是1XXX1。

5、S(r,c) = S(r-1,c-1) +c* S(r-1,c),含义是第r排的第c个数等于他上一排的上一个位置数字加上一排的同样位置数字的c倍(对着上表的行号和列号看,很容易记)。r=row,c=column.

例如S(7,3)就是第7排第3个数字,所以他等于上排第6排第2个数字+第6排第3个位置*3。

所以画图的话,明显第1排是1,第2排1,1,推理第3排(左右两边都是1,只有中间那个数字没确定)。

所以S(3,2) =第2排第1个数字+第2排第2个数字*2= 1+1*2 = 3,所以第3排数字就是1,3,1。同理S(4, 2) = S(3, 1)+ 2S(3, 2) = 1+2*3 = 7, ...如此类推。

--------------------------------------------------------------------------------

四、练习题

1、8个相同的球放进4个相同的盒子里,每盒至少一个,有几种方法?

2、8个相同的球放进4个不同的盒子里,每盒至少一个,有几种方法?

3、8个不同的球放进4个不同的盒子里,每盒至少一个,有几种方法?

4、8个不同的球放进4个相同的盒子里,每盒至少一个,有几种方法 ?

5、8个相同的球放进4个相同的盒子里,有几种方法 ?

6、8个相同的球放进4个不同的盒子里,有几种方法?

7、8个不同的球放进4个不同的盒子里,有几种方法 ?

8、8个不同的球放进4个相同的盒子里,有几种方法?

9、8个不同的球平均分给4个小朋友,有几种分法?

10、8个不同的球平均分成4堆,有几种分法?

--------------------------------------------------------------------------------

下面是我做的,不一定是正确答案,大家可以先做了对一下结果,不同再讨论下:

1、8个相同的球放进4个相同的盒子里,每盒至少一个,有几种方法?

公式:球相同,盒相同,拆分公式。

P4(8)=P1(4)+P2(4)+P3(4)+P4(4)

=1+2+1+1

=5

2、8个相同的球放进4个不同的盒子里,每盒至少一个,有几种方法?

公式:球相同,盒不同,插板法。

C(8-1,4-1)

=C(7,3)

=7*6*5/6

=35

3、8个不同的球放进4个不同的盒子里,每盒至少一个,有几种方法?

公式:球不同,盒不同,不为空,阶乘和二类斯特林数,球是行号,盒子是列号。

M!*S(N,M)

=4! * S(8,4)

=24*1701

=40824

4、8个不同的球放进4个相同的盒子里,每盒至少一个,有几种方法 ?

公式:球不同,盒同,二类斯特林数,为空是累加,不为空是直接取数,球是行号,盒子是列号。

S(N,M)

=S(8,4)

=1701

5、8个相同的球放进4个相同的盒子里,有几种方法 ?

公式:球同,盒同,为空,拆分公式。

P4(8+4)=P4(12)

=P1(8)+P2(8)+P3(8)+P4(8)

=1+4+(P1(5)+P2(5)+P3(5))+(P1(4)+P2(4)+P3(4)+P4(4))

=1+4+(1+2+(P1(2)+P2(2))+(1+2+1+1)

=1+4+5+5

=15

6、8个相同的球放进4个不同的盒子里,有几种方法?

公式:球同,盒不同,插板法。

C(11,3)

=11*10*9/6=15*11=165

7、8个不同的球放进4个不同的盒子里,有几种方法 ?

公式:球不同,盒不同,为空,直接是M^N

4^8=4^4*4^4=2^8*2^8=256*256=65536

8、8个不同的球放进4个相同的盒子里,有几种方法?

公式:球不同,盒同,二类斯特林数,为空,是累加

S (N, 1) + S(N, 2) + S(N, 3) + ... + S(N, M)

=S(8,1)+S(8,2)+S(8,3)+S(8,4)

=1+127+966+1701

=2795

9、8个不同的球平均分给4个小朋友,有几种分法?

从8个球中取2个分给第1个小朋友,从剩下6个中取2个来分给第二个小朋友。。。

C(8,2)*C(6,2)*C(4,2)*C(2,2) = 2520

10、8个不同的球平均分成4堆,有几种分法?

C(8,2)*C(6,2)*C(4,2)*C(2,2) / 4!= 2520/24 =105

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