一、序言
这个“ N个球 放M盒子问题”是很经典的排列组合了,论坛上也有经典的8种情况的解法。
论坛上讨论这8种情况的,我搜索了下(点左边查看搜索结果,还是有很多人在讨论的)

看了部分搜索结果,大多都来自下面这个排列组合的牛人。
---“军团-云淡”,此人貌似非常喜欢研究排列组合,有点明白了为什么很多人叫他公式帝,因为排列组合很多都是模型,比如:全错位排列(欧拉“装错信封问题”)等等,
下面是他部分贴子汇总:
http://bbs.qzzn.com/read-htm-tid-10867122.html 见5:8道排列组合题解析

二、8种类型的公式
N球,M盒,由于球是否相同,盒是否相同,盒是否可以为空,共2^3=8种:

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,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的最大整数
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++1+1
=1+2++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)
--------------------------------------------------------------------------------

S2(N ,M)
1
2
3
4
5
6
7
8
9
1
1

2
1
1

3
1
3
1

4
1
7
6
1

5
1
15
25
10
1

6
1
31
90
65
15
1

7
1
63
301
350
140
21
1

8
1
127
966
1701
1050
266
28
1

9
1
255
3025
7770
6951
2646
462
36
1
上面就是传说的:第二类斯特林数(第二类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
------------------------------------------------------------------------------------
疑问:用“军团-云淡”的“按取球多寡来分类讨论”的拆数法怎么做以下的题:

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

把m个球放到n个盒子里,有多少种方法 球盒问题,8种情况相关推荐

  1. “n个球放到m个盒子”问题整理

    n个球放到m个盒子 以8个球放到3个盒子为例 1 球同,盒同,可空 思路一:8个球放到3个盒子 取球最少盒子取0个球,取球第二少的盒子取[0,4]      取球最少盒子取1个球,取球第二少的盒子取[ ...

  2. 三色球问题。有红、黄、绿三种颜色的球,其中红球3个,黄球3个,绿球6个。现将这12个球混放在一个盒子里,从中任意摸出8个球,编程计算摸出球的各种颜色搭配。

    #include <iostream>using namespace std;int main(){ int r,y,l;//r红,y黄,l蓝for(r=0;r<=3;r++){fo ...

  3. 64个球分到18个盒子里

    现在有64个乒乓球,18个乒乓球盒,每个盒子里最多可以放6个乒乓球(最少也要放1个乒乓球),至少有几个乒乓球盒子里的乒乓球数目相同? 都是典型的抽屉原理.1.你的思路是正确的,"至少有几个乒 ...

  4. 浅谈n个球和m个盒子之间的乱伦关系

    无视标题,从我做起 update in 2018.10.1: 补充了"至多为1的四中情况" 这玩意儿的官方名字应该是叫"Twelvefold way",共用12 ...

  5. html设置盒子水平垂直居中,盒子水平垂直居中10种方法

    盒子水平垂直居中10种方法 HTML代码 第一种:通过绝对定位的方式 absolute + 负margin 首先知道子元素的宽高,给子元素设置top:50%:left:50%, 但绝对定位是基于子元素 ...

  6. 5个球放入3个箱子_排列组合问题,把5个相同的球放到三个相同的盒子里,要求每个盒子都有球,则不同的放球方法是多少?...

    一个一个的列出来就好了. 2种.311和221 ----............... 修改. 这本来就是从一个一个列举出来的.要用到排列组合的都是一些特定的情况.不过这道题貌似用不上. 比如5个球变 ...

  7. 【组合数学】指数型母函数 应用 ( 多重集排列问题 | 不同球放在不同盒子里 | 奇/偶数序列的指数生成函数推导 )

    文章目录 多重集全排列公式 指数型母函数 处理多重集排列问题 引入 指数型母函数 处理多重集排列问题 公式推导 指数型母函数 处理 有限数字串问题 指数型母函数 处理 n 位数字串问题 指数型母函数 ...

  8. 排列组合 “n个球放入m个盒子“里,再来一遍

    1.球同,盒不同,无空箱 C(n-1,m-1), n>=m 0, n<m 使用插板法:n个球中间有n-1个间隙,现在要分成m个盒子,而且不能有空箱子,所以只要在n-1个间隙选出m-1个间隙 ...

  9. 【C语言基础练习】有红、绿、蓝三种颜色的球各3个。现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配。

    有红.绿.蓝三种颜色的球各3个.现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配. 1 #include<stdio.h>2 int main()3 {4 ...

  10. 有红、黄、绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。1. 输出情况总数;2.输出摸取情

    内容1:有红.黄.绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个.先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配.1. 输出情况总数;2.输 ...

最新文章

  1. 返回数据给上一个活动
  2. STM32 C/C++ uCOSII 函数调用return 无法返回或者函数无法正常反回上一层函数的问题
  3. intellij中运行后出现Hadoop is not in the classpath/dependencies
  4. 向左滚动,每次滚动的长度可以设置,然后暂停后继续滚动
  5. 宝塔+wordpress搭建/迁移网站
  6. linux 内存管理 ppt,Linux内存管理 Memory Manager.ppt
  7. 剑指Offer之两个链表的第一个公共节点
  8. three.js 笑脸雨
  9. 实现数组头尾两端元素对调代码
  10. linux 平台编程软件下载,慧编程-慧编程linux版下载 v1.2.0官方版--pc6下载站
  11. Ext applyTo和renderTo的区别和用法
  12. 一块硬盘装了黑苹果 一块硬盘装了win7_自己组装一台“iMac”是什么体验(下):AMD 平台也能吃上黑苹果...
  13. 火车头采集ajax网址的技巧,使用post方法获得采集网址
  14. 怎么用计算机名看地址吗,知道计算机名 肿么查ip
  15. MMA格斗包含UFC与ONE
  16. 数据分析[1.2]--《深入浅出数据分析》1-分解数据
  17. Http status code 状态码
  18. STM32学习记录:输入捕获应用
  19. 鱼C论坛小甲鱼Python课后题
  20. 蓝书(算法竞赛进阶指南)刷题记录——CH#46A BZOJ3276 磁力块(bfs+分块)

热门文章

  1. LeetCode:在线编程刷题网站
  2. 基于CNN+tensorflow对搜狐新闻进行分类并对函数进行封装
  3. 计算机为什么硬盘值钱,数据到底有多值钱?看完硬盘数据恢复价格你就知道了...
  4. word文档打不开、损坏了怎么修复
  5. JAVA基础-多线程中锁机制
  6. 香港长和集团开创P2F金融理财新征程
  7. phalapi做登录检测_PhalApi框架使用笔记
  8. 6.1. Principles of Usability
  9. idea安装插件plugin(主要针对网络连接不上的情况)
  10. 电子邮箱邮件安全使用技巧,公司电子邮件安全使用总结