放球问题是指把 n个球放到 m个盒子里的方案数。它是组合数学的一个非常重要的问题。根据球是否相同,盒子是否有区别,是否允许有空盒以及n与m 的大小关系,放球问题可分成 16 个子问题。不同情况总结见下表。
 
1,n 个球有区别,m 个盒子有区别,允许有空盒,n≥m≥1
由于可以有空盒,所以每个球可以放到m个盒子的任意一个盒子里。又因为盒子是有区别的,所以对于任意一个球有m种不同的选择。 n个球是有区别的,所以总共有

  

种方案。比如,当n=3 时,第 1 个球有m种不同选择,第 2 个球有m种不同选择,第3个球有m种不同选择,据乘法法则总共有

  

种方案。

2. n 个球有区别,m 个盒子有区别,允许有空盒,m>n≥1。
由于可以有空盒,所以每个球可以放到m个盒子的任意一个盒子里。又因为盒子是有区别的,所以对于任意一个球有m种不同的选择。n个球是有区别的,所以总共有

  

种方案。

4. n 个球有区别,m 个盒子无区别,无空盒,m>n≥1
  由于m>n,而n个球至多可放入n个盒子里,所以必定有空盒。故满足此条件的方案数为 0。
  5. n 个球有区别,m 个盒子有区别,无空盒,n≥m≥1
  对于这个问题,可以先假设m个盒子是无区别的,这样根据 3 可知总共有S(n,m)种不同的方案数。然后再把m个盒子进行全排列,所以总共有m!S(n,m)种方案。
  6. n 个球有区别,m 个盒子有区别,无空盒,m>n≥1
  由于m>n, 而n个球至多可放入n个盒子里,所以必定有空盒。故满足此条件的方案数为 0。
  7. n 个球有区别,m 个盒子无区别,允许有空盒,n≥m≥1
  因为允许有空盒,我们可以设非空的盒子数是k个。则问题变成n个有区别的球放到k个无区别的盒子里,要求无一空盒。据3可知,总共有S(n,k) 种方案。因为n≥m, k的取值范围是[1, m], 所以共有S(n, 1) + S(n, 2) + …… + S(n, m)种方案。
9. n 个球无区别,m 个盒子有区别,允许有空盒,n≥m≥1
  先介绍允许重复的组合的概念。允许重复的组合是指从集合A={1,2,……,n}中取r个元素{

  

},

  

并且允许当

  

时,

  

.例如A={1,2,3}, 取A中2个元素作允许重复的组合,除了不重复的{1,2}, {1,3}和{2,3}外,还包含{1,1}, {2,2}, {3,3}。根据 [1]  可知,在n个不同的元素中取r个作允许重复的组合,其组合数为C(n+r-1, r)。设m个不同的盒子构成集合M。每次从集合M中取出n个元素作允许重复的组合。若组合中,第i个盒子出现了k次(n≥k≥0),则表示第i个盒子中有k个球。因此问题可表示为 从m个不同的元素中取n个作允许重复的组合,其方案数为C(m+n-1, n)。

也可利用“插板法”来理解。假设n个球和m-1个板放到n+m-1个位置,第1个板前的放进第一个盒子,第i-1个版和第i个版之间的球放进第i个盒子,则共有C(m+n-1,n)种放法。由于此时板可以连续放,故对应允许有空盒的情况。
10. n 个球无区别,m 个盒子有区别,允许有空盒,m>n≥1
此问题可表示为从m个不同的元素中取n个作允许重复的组合,其方案数为C(m+n-1, n)。
11. n 个球无区别,m 个盒子有区别,无空盒,n≥m≥1
  由于要求无空盒,而且n个球无区别,所以先取出m个球放入m个盒子里。此时,这个问题可转化为求将(n-m)个无区别的球放入m个有区别的盒子里,允许有空盒的方案数。这 个 问 题 就 变 成 了 9 所 解 决 的 问 题 。 因此有C(m+(n-m)-1, n-m)=C(n-1, n-m)=C(n-1, n-1-(n-m))=C(n-1,m-1)种方案。
12. n 个球无区别,m 个盒子有区别,无空盒,m>n≥1
  由于n<m,而n个球至多可放入n个盒子里,所以必定有空盒。故满足此条件的方案数为 0。
  13. n 个球无区别,m 个盒子无区别,允许有空盒,n≥m≥1
  此问题相当于把n个球分成k堆,其中m>=k>1。根据 [1]  中2.9 节的推论:设n≥m,n拆分成最多m个数的和的拆分数等于将n拆分成最大数不超过m的拆分数。据上述推论可把问题转化为把整数n拆分成最大数不超过m的拆分数。而把整数拆分成最大不超过m的拆分数

  

的母函数为

  

故满足条件的方案数等于把n用{1,2,...,m}进行拆分的拆分数,等于G(x)的

  

项系数。
  14. n 个球无区别,m 个盒子无区别,允许有空盒,m>n≥1
  此问题相当于把n个球分成k堆。其中m>=k>1且n>=k>1。又因m>n,所以k的取值范围为n>=k>1。
  据13 可知此问题可转化为把整数n拆分成最大数不超过n的拆分数。而把整数拆分成 最 大不 超 过n的 拆 分 数的母函数为

故满足条件的方案数等于把n用{1,2,...,n}进行拆分的拆分数,等于G(x)的

  

项系数。

15. n 个球无区别,m 个盒子无区别,无空盒,n≥m≥1
  我们可先将每个盒子放一个球,然后利用类比13题,即
满足条件的方案数等于G(x)的

  

项系数。

16. n 个球无区别,m 个盒子无区别,无空盒,m>n≥1
  由于n<m, 而n个球至多可放入n个盒子里,所以必定有空盒。故满足此条件的方案数为0。
n个球是否有区别
  
m个盒是否有区别 是否允许空盒 n是否大于m 方案数 简要解释

  是
每个球有m种可能
每个球有m种可能
类比盒无区别时,再乘以盒的可能排列
盒比球多,必有空盒
枚举有球盒的数量,再利用斯特林数
枚举有球盒的数量,再利用斯特林数
  
根据斯特林数定义
盒比球多,必有空盒

  
插板法或根据可重组合计算公式
同上
先给每盒放一球,然后利用n-m个球,m个盒子有空盒的解
盒比球多,必有空盒

  

  

的系数

母函数方法

  

的系数

母函数方法

  

的系数

母函数方法
盒比球多,必有空盒

转载于:https://www.cnblogs.com/l609929321/p/9555155.html

放球问题 组合数学 转自百度百科相关推荐

  1. 组合数学之放球问题 【附斯特林数】

    放球问题在组合数学中是一个经典问题,在ACM比赛中也经常会出现类似的题目,这里做一个归纳. 我们假定现在有n个球,要放到m个盒子中,根据情况的不同主要可以分为一下8类(这里确保n>=m) 编号 ...

  2. 【集合论】Stirling 子集数 ( 斯特林子集数概念 | 放球模型 | Stirling 子集数递推公式 | 划分的二元关系 加细关系 )

    文章目录 一.Stirling 子集数 二.放球模型 三.Stirling 子集数递推公式 四.Stirling 子集数示例 ( 四元集等价关系个数 ) 五.划分的二元关系 加细关系 一.Stirli ...

  3. 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字

    python百度百科爬虫 网页源代码分析 编程实现 小结 网页源代码分析 首先找一下需要爬取的正文: 对应的源代码有两个地方: 上图往后翻会发现省略号,所以下面这张图才是我们需要爬取的部分: 编程实现 ...

  4. 用python 爬取百度百科内容-爬虫实战(一) 用Python爬取百度百科

    最近博主遇到这样一个需求:当用户输入一个词语时,返回这个词语的解释 我的第一个想法是做一个数据库,把常用的词语和词语的解释放到数据库里面,当用户查询时直接读取数据库结果 但是自己又没有心思做这样一个数 ...

  5. python爬虫百度百科-python爬虫(一)_爬虫原理和数据抓取

    本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...

  6. linux——百度百科

    https://baike.baidu.com/item/linux/27050?fr=aladdin linux 编辑 本词条由"科普中国"百科科学词条编写与应用工作项目审核. ...

  7. Linux内核——百度百科

    https://baike.baidu.com/item/Linux%E5%86%85%E6%A0%B8 Linux内核 编辑 Linux是一种开源电脑操作系统内核.它是一个用C语言写成,符合POSI ...

  8. 维基百科 百度百科:谁是真正的草根

    百度百科上线两个月了,自从上线以来,百度百科一直以"草根百科"的形象示人,它的运营者和拥趸们声称:相比于美国血统的中文维基百科,百度百科会吸引更多中国网民的参与,它更草根,它更适合 ...

  9. chrome浏览器的性能测试--本文引用自 百度百科http://baike.baidu.com/view/1835504.htm

    Google Chrome,又称Google浏览器,是一个由Google(谷歌)公司开发的开放原始码网页浏览器.该浏览器是基于其他开放原始码软件所撰写,包括WebKit和Mozilla,目标是提升稳定 ...

最新文章

  1. Linux-Load Average解析
  2. Leetcode1700. 无法吃午餐的学生数量[C++题解]:模拟题简单,用queue
  3. vue定义一个变量并显示
  4. 10.8 ss:查看网络状态
  5. mysql表变量临时表_表变量和临时表详解
  6. 网传“杭州市聘罗永浩为形象大使”?官方:为不实信息
  7. zip压缩/tar打包
  8. JQuery blockUI 的使用方法
  9. 在Mac电脑中忘记管理员密码了如何处理?如何安全的管理自己的密码?
  10. Xcode打包ipa的基本步骤
  11. VLAN与Trunk的配置
  12. ios textView输入框光标问题
  13. 天使投资(AI),风险投资(VC),私募基金(PE);A轮,B轮,C轮,D轮,E轮,F轮融资之间的区别...
  14. 论文学习笔记:PoseFix: Model-agnostic General Human Pose Refinement Network
  15. 风影总结NHibernate2 配置文件
  16. 思维方式-《知识的边界》书中的精髓:互联网对知识的影响以及利用互联网获得更多知识的方法。
  17. 水下超声波测距c语言程序,51单片机超声波测距C程序
  18. Python项目实战:下载腾讯漫画的脚本及源码【女朋友在也不担心我花钱购买漫画了】
  19. deque实现生产者-消费者队列
  20. 反射 Reflect Class 基础 API MD

热门文章

  1. PHP数组和Json之间的转换
  2. 测试基础【第二篇】软件测试模型
  3. CISC, RISC 探究
  4. Windows Embedded Standard 7 剪裁随笔
  5. elasticsearch使用Filter过滤查询操作(使用marvel插件)
  6. 性能测试基础之JMeter聚合报告详解
  7. selenium+unittest自动化测试(二)---浏览器控制及元素定位的方法
  8. C语言分支结构while,C语言学习:分支结构和循环结构的总结(收藏)
  9. linux新建用户不显示,linux系统无法添加用户帐号的原因分析
  10. 水泵怎么做_燃气壁挂炉初次调试,要怎么做才好?