组合数学——排列组合经典模型

球盒模型

n n n个不同的球放入 m m m个相同的盒子里面,盒子不允许为空

这和第二类斯特林数的定义相同,答案为 { n m } {n \brace m} {mn​}。

n n n个不同的球放入 m m m个不同的盒子里面,盒子不允许为空

通过第二类斯特林数计算出 n n n个不同的球放入 m m m个相同的盒子里面,盒子不允许为空的方案数为 { n m } {n \brace m} {mn​},之后再对 m m m个盒子进行排列即可,答案为 { n m } × m ! {n \brace m} \times m! {mn​}×m!。

n n n个不同的球放入 m m m个相同的盒子里面,盒子允许为空

枚举空盒数量即可,答案为:

∑ i = 0 m − 1 { n m − i } \sum_{i=0}^{m-1}{n \brace m-i} i=0∑m−1​{m−in​}

定义为Bell数。

n n n个不同的球放入 m m m个不同的盒子里面,盒子允许为空

配对问题,答案为:

m n m^n mn

n n n个相同的球放入 m m m个不同的盒子里面,盒子不允许为空

经典的隔板法,答案为:

( n − 1 m − 1 ) \binom{n-1}{m-1} (m−1n−1​)

n n n个相同的球放入 m m m个不同的盒子里面,盒子允许为空

我们先放入m个相同的球,现在球的数量为 n + m n+m n+m个,我们将这 n + m n+m n+m个球放入 m m m个不同的盒子里面,盒子不允许为空,最后再在每个盒子中抽走一个球,答案为:

( n + m − 1 m − 1 ) \binom{n + m -1}{m-1} (m−1n+m−1​)

或者,每一种情况对应一种仅由"N"和"P"组成的操作序列。我们一开始站在第一个盒子处,遇到"P"则在当前盒子放进一个球,遇到"N"则向右走一个箱子。这个序列由 m − 1 m-1 m−1个"N"和 n n n个"P"组成。

n n n个相同的球放入 m m m个相同的盒子里面,盒子允许为空

我们考虑递归,当 m > n m > n m>n的时候,必然会有 m − n m-n m−n个盒子为空,所以将其舍弃,为 p ( n , n ) p(n,n) p(n,n)。其他情况,考虑划分成两种情况,第一种 m m m个盒子全部非空,那么现将 m m m个箱子每一个都放进一个球,方案数为 p ( n − m , m ) p(n-m,m) p(n−m,m)。第二种有至少一个盒子是空的,那么方案数为 p ( n , m − 1 ) p(n,m-1) p(n,m−1)。

int partition(int n, int m)
{if (n == 0)return 1;if (m == 0)return 0;if (m > n)return partition(n, n);elsereturn partition(n, m - 1) + partition(n - m, m);
}

n n n个相同的球放入 m m m个相同的盒子里面,盒子不允许为空

先将 m m m个盒子每一个放入一个小球,保证非空,然后转为为上一个问题,答案为 p ( n − m , m ) p(n-m,m) p(n−m,m)

n n n个相同的球放入 m m m个不同的盒子里面,每个盒子里面最多有一个小球,并且非空的盒子不能相邻

考虑现将小球放入盒子中,之后再每个盒子中插入一个空盒子,还剩下 m − n + 1 m-n+1 m−n+1个盒子,考虑将这 m − n + 1 m-n+1 m−n+1个盒子,可以用空放入 n + 1 n+1 n+1个位置。答案为 ( n − m + 1 n − 2 m + 1 ) \binom{n-m+1}{n-2m+1} (n−2m+1n−m+1​)

划分模型

划分模型指 n n n个不同的元素,按照 [ n 1 , n 2 , … , n k ] [n_1,n_2,\ldots,n_k] [n1​,n2​,…,nk​]进行划分成 k k k组,其中 ∑ n i = n \sum{n_i} = n ∑ni​=n,问有多少种划分方式。

我们先按照 n i n_i ni​的大小相同的分到一个集合中,那么 S S S集合就是多值集合 [ n 1 , n 2 , … , n k ] [n_1,n_2,\ldots,n_k] [n1​,n2​,…,nk​]的一个划分。

那么答案为:

ans = ∏ i = 1 k ( n − ∑ j = 1 k − 1 n i n k ) ∏ s i ∈ S ∣ s i ∣ ! \text{ans} = \frac{\prod_{i = 1}^k \binom{n - \sum_{j = 1}^{k - 1}n_i}{n_k}}{ \prod_{s_i \in S} |s_i|!} ans=∏si​∈S​∣si​∣!∏i=1k​(nk​n−∑j=1k−1​ni​​)​

组合数学——排列组合经典模型相关推荐

  1. 组合数学--排列组合

    组合数学--排列组合 1. 概述 1.1 应用 1.2 三大问题 2. 排列组合 2.1 两大法则 2.2 排列 3. 放球模型 4. 模型转换 5. 线性方程的解 5.1 若干等式及其组合意义 6. ...

  2. 组合数学-排列组合整理

    此文是我整理组合数学排列组合知识的博文,排列组合从零开始...加油! 1.重复组合: 从n种不同元素中取出m的元素(方法是从n个元素中每次取出一个后,放回,再取另外一个,直到取出m个元素),每一种元素 ...

  3. [组合数学] 排列组合

    文章目录 加法法则 --每一类都能够独立的完成任务 乘法法则 --集合论 任务分步骤 1000和9999之间有多个具有不同数位的奇数 n = 7 3 + 1 1 2 + 1 3 4 ^3+11^2+1 ...

  4. pku 1850 Code 组合数学排列组合的应用

    http://poj.org/problem?id=1850 以前接触组合数学的东西比较少,以后要训练一些这类的题目了..http://baike.baidu.com/view/738955.htm ...

  5. 组合数学 排列组合基本问题总结

    1. 从n个不同元素中允许重复地选取r个元素的组合数是C(n+r-1,r) 证明思路:采用划归转化的思想,将可重组合转化为无重组合,证明的一般思路: 1. 先设出一组有序序列 2. 对该序列进行变换 ...

  6. 信奥中的数学:排列组合

    排列组合题型总结课程(一) 排列组合题型总结课程(一)_哔哩哔哩_bilibili 排列组合的公式 排列组合的公式_百度知道 [Manim动画]如何以可视化视角直观理解排列组合? [Manim动画]如 ...

  7. AcWing-822. 走方格(排列组合)

    文章目录 一.原题题目 二.解题思路 三.代码实现 四.题目总结 一.原题题目 题目跳转链接在这里:https://www.acwing.com/problem/content/824/ 二.解题思路 ...

  8. 排列组合——n个人平均分成m组

      本文介绍了排列组合经典问题--n个人平均分成m组的解法(公式),并给出其Python程序,详情如下. 1 解法公式   求n个人平均分成m组的分配法.设分配方法共 N N N种,每组 k = n ...

  9. 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )

    文章目录 一.多重集组合示例 二.三个计数模型 排列组合参考博客 : [组合数学]基本计数原则 ( 加法原则 | 乘法原则 ) [组合数学]集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | ...

最新文章

  1. [转]获取Setup文件的运行路径
  2. server的自增主键返回函数 sql_mybatis+sqlserver中返回非自增主键
  3. 专栏 | 基于 Jupyter 的特征工程手册:特征选择(二)
  4. 流水线、超流水线、超标量技术对比
  5. Linux/CentOS7install PackageError: Loaded plugins: fastestmirror
  6. 教大家多个域名绑定一个空间的解决办法,原创,自己已经测试过了,完全可以绕过杀毒软件,以及空间商.
  7. Densenet论文解读 深度学习领域论文分析博主
  8. iOS 蓝牙扫描设备注意 2021-10-12
  9. java 关于System类下的arraycopy方法
  10. python画玫瑰图_python windrose(风玫瑰图)
  11. 即时通讯服务服务器 ejabberd、jabber、jabberd、xmpp简介
  12. js控制页面只刷新一次
  13. h5-video3 解决html5 audio iphone,ipd,safari不能自动播放问题
  14. 使用NDK编译C++代码
  15. 上海宝付发布新骗局预警:培训贷为大学生求职者而来
  16. 10个优秀的Golang开源库类,武装生产力
  17. 南京申瓯SOC1000-UC IPPBX为中小企业提供电话系统解决方案
  18. 编译工具:XMake 和 CMake对比分析
  19. Linux内核中的汇编语言
  20. Flutter 导包错误 Target of URI doesn't exist

热门文章

  1. 朴素贝叶斯(垃圾邮件分类)
  2. 文件上传-- Web渗透
  3. (已解决)Mybatis:Result Maps collection does not contain value for 报错
  4. 浏览器console命令
  5. 《程序员面试金典(第6版)》面试题 03.06. 动物收容所
  6. python与审计底稿关系_刚刚,我在会计师事务所的朋友给了我一份《“四大”审计底稿》!...
  7. 立方体贴图 Cubemap
  8. 达内python培训学校怎么样
  9. 副本站点的安装与配置(以10.2M030为例)
  10. 元素类型为 “mapper“ 的内容必须匹配 “(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec