【数论】组合数学学习笔记
蒟蒻的组合数学实在是太弱了,所以在初赛之前赶紧来复习一下,大部分内容由 整合而来。
普及知识点标 ,提高知识点标
加法原理&乘法原理()
加法原理
假设完成一项任务有 种方案,每种方案的办法数目为 ,则完成这项任务的总方法数为 。
乘法原理
假设完成一项任务分 个步骤,每种步骤又有 个办法,则完成这项任务的总方法数为 。
一些排列组合的符号()
排列数
从 个元素中选择 个组成的排列个数(),用符号 或 表示,即
如何理解?假设有 个人,我们要从中选择 个人来排队。对于第一个位置,我们有 个人可以选;因为选掉了一个人,第二个位置就只剩下 个人可以选。依次类推,第 个位置就有 个人可以选,根据乘法原理把它们相乘起来就是了。
全排列
即 个元素组成的排列个数:
排列数的递推公式
组合数
从 个元素中选择 个组成的组合个数(),用符号 表示,为了表达方便可以简写成 ,即
如何理解?如果我们从 个人中选 个人,如果不在乎顺序,就是 ,如果在乎顺序,则选出来的 个人还要再全排,得到 。则
组合数的递推公式
如何理解这个递推公式?我们只需要简单的举个例子。我们可以把
这个方案,分成两个集合:包含 与不包含 。
如果不包含 这个数,则我们需要在剩下的 到 这 个数里面选择 个数,即 。
如果包含,则我们需要在剩下的 到 这 个数里面选择 ,即 。根据加法原理把两个集合的方案相加即可。
组合数一些简单的东西
组合数的对称性()
即对选出来的集合对全集取补集,数值不变。
二项式定理()
其用组合数阐明了一个展开式的系数,可以用数学归纳法证明,可是窝太菜了不会,只好给出我的非数学归纳法的证明:
首先我们可以把左边的柿子化成
这个柿子展开后有 项,我们要将展开后的柿子合并同类项,最终每一项都形如 。我们想知道的就是前面的 ,那么我们就得出一个问题,对于每一个 ,有多少个 ,即从 个 中选 个 方案个数(剩下的都是 所以不用管),即 。所以 ,所以二项式定理成立。
杨辉三角()
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
这是杨辉三角的 至 行,我们会发现第 行第 个数( 从 开始)对应着 展开式的系数 ,第 行 列的数(设为 )的递推式为
由于 ,可以推出
这同时也证明了组合数的递推式。
组合数的另一个递推式
其他一些杂七杂八的东西
当 时,代入二项式定理可以证明 式;当 时,代入二项式定理可证明 式; 可以证明 式。
一些解题技巧
例题1. 六个人站一排,求
(1)甲不在排头,乙不在排尾的方案数。
(2)在上一小问的前提下,甲乙不相邻的方案数。
可以先思考一下。
解答:
(1):对于这类题,我们可以用“正难则反”的方法。什么叫正难则反呢?就是对于从正面很难解答的题型,我们从反面来推。
如这道题,我们发现直接硬算很麻烦,我们可以换一种思路:求出六个人的全排列,再减去甲在排头的方案数和乙在排尾的方案数就行了。答案为
如果您觉得这正确,那就大错特错了,因为甲在排头,并且乙在排尾被多减了一次!根据容斥原理,我们要把多减去的那部分再加回来,所以正确的答案应该是
(2): 这里我们用分类讨论的方法,我们分四种情况讨论:
-
甲在排尾,乙在排头:显然,甲乙位置确定中间四个随便排,方案数为 。
-
甲在排尾,乙不在排头:那么乙只有 种选择(不在排头,且不与甲相邻),剩下的四人随便排,方案数为 。
-
甲不在排尾,乙在排头:对称地,方案数为 。
-
甲不在排尾,乙不在排头:我们还可以再分讨:
- 甲在 号位:那么乙只有两种选法,方案数为 。
- 甲在 号位:那么乙只有一种选法,方案数为 。
- 甲在 、 号位的情况分别于在 、 号位的情况相同。
综上,总方案数为
例题2. 八个人站一排,求
(1)甲乙必须相邻的排列数。
(2)甲乙必须不相邻的排列数。
解答:
(1):对于这类题,我们可以采用捆绑法,即将甲乙看作一个人,那么就是七个人求全排列,同时甲乙之间是有序的,其内部还需要全排列,所以答案为
(2):这个就很水了,“正难则反”,用八个人的全排列减去甲乙相邻的方案数就行,答案不用我说了。
例题3.
某人射击 枪,命中 枪,恰好有 枪连续命中,有多少种不同情况?
解答:
这题应使用捆绑法解答,把连续的 枪看作一个,但注意是恰好有 枪连续命中,也就是说另外一枪和这三枪不能相邻,如果容斥或者分讨将会非常麻烦,有什么更简单的方法呢?
这里就要使用我们的插空法,有时也叫隔板法。
什么意思呢?我们将没命中的四枪提取出来,
_·_·_·_·_
我们发现,相邻两枪中间都有空位,总共有 个空位,我们只要将捆绑的 枪和另外一枪插入到这些空位中,不就满足它们不相邻了嘛?由于这几枪都是无序的,所以答案就是 。
例题4.
求不定方程 的正整数解个数。
解答:
这题需要用到隔板法,我们把 想象成 个相同的小球,我们要把这些小球分成 份有多少个方案呢?我们可以在这些小球之间的空位中放入 个隔板(一个空位最多只能放一个隔板),这样就能把这些小球分成 份了。由于两端不能放隔板,所以有 个空位,答案为 。
例题5.
求不定方程 的非负整数解个数。
这题看似和上一题一样,但 变成了非负整数,也就是说 可以为 ,那这样隔板可以放在一起,这怎么算呢?
令 ,则有 。我们发现,这里的 都是正整数,且每一个 的解都对应一个 ,那么我们就很好地转化成了上题,答案即为 。
组合数学进阶()
卡特兰数
定义 为卡特兰数的第 项。
亿些递推公式
递推边界:
要用到卡特兰数的问题
-
有 个人排成一行进入剧场。入场费 元。其中只有 个人有一张 元钞票,另外 人只有 元钞票,剧院无其它钞票,问有多少中方法使得只要有 元的人买票,售票处就有 元的钞票找零?
-
一位大城市的律师在她住所以北 个街区和以东 个街区处工作。每天她走 个街区去上班。如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
-
在圆上选择 个点,将这些点成对连接起来使得所得到的 条线段不相交的方法数?
-
对角线不相交的情况下,将一个凸多边形区域分成三角形区域的方法数?
-
一个栈(无穷大)的进栈序列为 ,有多少个不同的出栈序列?
-
个结点可构造多少个不同的二叉树?
-
将 个 和 个 构造成 项的数列 ,满足 的方案数为?
第二类斯特林数
不说第一类是因为第一类不常见。
例题:P3904 三只小猪
定义: (或简写成 )表示将 个两两不同的元素,划分为 个互不区分的非空子集的方案数。
递推公式
递推边界
递推式的解释可见我的题解
错排列
例题:P1595 信封问题
定义: 表示将 个元素错排(就是第 个元素不能放到第 个位置)的方案数。
递推公式:
递推边界:
如何理解?对于第 个元素,它肯定不能放在第 个位置,只能放在前面的 个位置上,设 ,我们可以把第 个元素放在第 个位置上,而原来第 个位置上的元素有两种选择:
-
交换到第 个位置上,方案数就是对剩下的 个元素错排,即 。
-
不到第 个位置上,方案数就是除去第 个位置外的 个元素错排,即 。
对于 有 种取值,总方案数即为 。
圆排列
定义: 个人全部来围成一圈,所有的排列数记为 。
由于从不同的位置断开会变成不同的队列,有
由此可知,从 个人中选 个人来围成一圈的排列数为
容斥原理
直接看 吧太多了不想写(
鸽巢原理
也叫抽屉原理,它常被用于证明存在性和求最坏情况下的解。——
简单情况
将 个元素分成 组,那么至少一组有两个(或以上)个元素。
证明显然。
推广到一般情况
将 个元素分成 组,则至少一组有大于等于 个元素。
反证法证明,假设每组有小于 个元素,则每组最多有 个元素。
.
矛盾.
总结,将 个元素划分成 , 个集合,则至少有一个集合 满足 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探