上一课我们解决了排列组合最基础、也是最容易出错的一个问题:
什么时候使用 “加法” ?什么时候使用 “乘法” ?
本课就在此基础上继续学习排列组合中的特殊限制问题,重点是:
捆绑法、插空法,以及“特殊位置”问题。
本课非常适合CSP-J初赛,因为很多题目并不要求孩子真的计算一个特别复杂的组合数,而是考查学生能不能读懂条件、拆分问题、选择正确的方法。
第四十一课:排列组合解题技巧②——捆绑法、插空法与特殊位置
一、先复习上一课的“四个问题”
做排列组合题之前,先问自己:
① 是分类还是分步?
或者 → 加法 然后 → 乘法② 顺序重要吗?
顺序重要 → 排列 顺序不重要 → 组合③ 能不能重复?
能重复 → 每个位置的选择数可能不变 不能重复 → 后面的选择数减少④ 有没有特殊条件?
例如:
必须相邻
不能相邻
必须在一起
某个人必须站在某个位置
某几个元素不能在一起
本课主要解决第四类问题。
二、第一种魔法:捆绑法
我们先看一道非常经典的问题。
例题1
5个人:
A B C D E排成一排。
要求:
A和B必须站在一起。
有多少种排法?
第一步:不要把A、B分开考虑
因为题目说:
A和B必须相邻。
所以我们把他们“绑起来”。
[A B]于是:
A B C D E变成:
[AB] C D E现在一共有4个“东西”:
[AB] C D E第二步:先排列4个整体
4个元素排队:
4!
第三步:AB内部还可以交换
因为:
AB和:
BA都满足“相邻”。
所以内部有:
2!
种。
第四步:相乘
4! × 2!= 24×2 = 48
三、捆绑法到底在做什么?
孩子可以把它理解成:
先把必须在一起的人捆成一个“小团队”,先安排团队的位置,再安排团队内部的人。
例如:
A B C D E变成:
┌─────┐ │ A B │ C D E └─────┘ ↑ 一个整体所以:
整体排列×内部排列
四、如果有3个人必须站在一起呢?
例题2
6个人:
A B C D E F排成一排。
要求:
A、B、C三个人必须连续站在一起。
怎么办?
第一步:捆起来
[ABC] D E F原来6个人,现在变成:
[ABC] D E F一共4个整体。
所以外部排列:
4!
第二步:ABC内部排列
三个人可以:
3!
种排列。
所以:
4! × 3! = 24×6 =144
五、一个非常重要的规律
如果:
n个人排队,其中k个人必须连续在一起。
可以先把这k个人捆成一个整体。
那么:
外部有
n-k+1个整体外部排列:
(n−k+1)!
内部排列:
k!
因此:
当然,这个公式大家不要机械背。
CSP-J初赛更重要的是理解:
为什么要减掉 k-1 个位置?
因为:
A B C三个独立的人:
A B C占3个位置。
捆起来以后:
[ABC]只占1个位置。
所以整体数量减少:
3−1 = 2
六、第二种魔法:插空法
现在换一种完全不同的限制。
例题3
有3个男生:
A B C和2个女生:
X Y5个人排成一排,要求:
两个女生不能相邻。
怎么做?
七、先排谁?
这时候我们不要先排女生。
先排男生。
A B C有:
3!
种排列。
假设某一次排成:
A B C现在看看男生之间和两边有什么位置:
_ A _ B _ C _一共有:
4
个“空”。
八、为什么是4个空?
仔细数:
① A前面 ② A和B之间 ③ B和C之间 ④ C后面也就是:
_ A _ B _ C _ ↑ ↑ ↑ ↑ 1 2 3 4一共:
3+1=4
个空。
九、为什么女生要插空?
因为题目要求:
两个女生不能相邻。
如果我们把女生分别插入不同的空中,就天然不会相邻。
例如:
X A Y B C女生:
X Y不相邻。
但是:
A X Y B C两个女生就在一起了。
所以:
不能相邻 → 尝试把它们插入不同的空。
这就是:
插空法
十、继续计算
男生排列:
3!
4个空中选择2个:
两个女生自己还可以交换:
2!
因此:
计算:
所以答案是:
72
十一、插空法的核心思想
记住这一幅图:
A B C ↓ ↓ ↓ _ A _ B _ C _先把“不受限制的那一类”排好。
然后:
把受到“不相邻”限制的元素插入空隙。
十二、为什么“不能相邻”适合插空?
因为如果:
_ A _ B _ C _每个元素都放到不同的空里:
X A Y B C或者:
A X B C Y女生自然不会相邻。
所以:
插空法的本质,就是用“空隙”主动制造“不相邻”。
十三、捆绑法和插空法的对比
这是本课最重要的比较。
| 条件 | 常用方法 | 思路 |
|---|---|---|
| 必须相邻 | 捆绑法 | 把它们绑起来 |
| 必须连续 | 捆绑法 | 看成一个整体 |
| 不能相邻 | 插空法 | 插进不同空隙 |
| 至少相邻一次 | 常结合分类/补集 | 分情况 |
可以给大家一句非常形象的话:
相邻就“绑起来”,不相邻就“插开来”。
十四、再看一道“特殊位置”问题
例题4
5个人:
A B C D E站成一排。
要求:
A必须站在最左边。
有多少种排法?
A的位置已经确定:
A _ _ _ _所以剩下4个人随便排列:
4!
答案:
24
十五、为什么不是5!?
因为:
A已经不能选择位置了。
普通情况下:
5!
表示5个人都可以自由选择位置。
但现在:
A → 第1个位置已经固定。
所以只剩:
4!
十六、特殊位置的核心思想
遇到:
某个人必须在第一个位置
就:
固定他 ↓ 剩下的人自由排列遇到:
某个人必须在最后一个位置
同样:
固定他 ↓ 剩下的人自由排列十七、如果A必须站在中间呢?
5个人:
_ _ _ _ _中间位置是第3个:
_ _ A _ _A已经固定。
剩下:
4!
所以:
24
十八、两个特殊位置同时固定
6个人:
A B C D E F要求:
A站最左边,B站最右边。
那么:
A _ _ _ _ B中间还有4个人。
所以:
4!
答案:
24
十九、特殊位置的另一种情况:必须在某几个位置之一
例如:
5个人排队,A必须站在第1个或第5个位置。
A有:
2
种位置选择。
剩下4个人:
4!
所以:
这里又回到了上一课:
分类 + 分步
A的位置:
第1个 或者 第5个是分类。
所以:
2
种。
确定位置以后:
再排列剩下的人。
所以:
2 × 4!
二十、一个非常重要的初赛思维
排列组合题不要一看到“必须”就套捆绑法。
例如:
A必须站在第1位。
这是:
固定位置。
不是捆绑。
例如:
A、B必须相邻。
这是:
捆绑法。
例如:
A、B不能相邻。
这是:
插空法或者补集法。
二十一、“至少”怎么办?
这也是CSP-J初赛非常喜欢考的地方。
例如:
5个人排队,要求A、B至少有一个条件满足……
看到:
至少
不要马上计算。
首先想到:
总数−不满足的情况
这就是:
补集思想
这一部分我们会在后面的课程中重点讲。
今天先让大家认识:
“至少”经常可以从反面考虑。
二十二、综合题:捆绑 + 特殊位置
例题5
6个人:
A B C D E F排成一排。
要求:
A、B必须相邻,而且A必须在B的左边。
有多少种?
首先:
AB必须相邻。
所以可以把:
[A B]看成一个整体。
再加:
C D E F一共:
5
个整体。
所以:
5!
但是注意:
A必须在B左边。
所以内部不再有:
BA这种情况。
因此内部只有:
AB一种。
所以答案:
5!=120
二十三、这里有一个非常容易错的地方
如果题目只说:
A、B必须相邻。
答案:
5! × 2!
因为:
AB BA都可以。
但是如果说:
A、B必须相邻,而且A必须在B左边。
那么:
AB唯一。
所以是:
5!
二十四、再看一个插空综合题
4个男生:
A B C D3个女生:
X Y Z排成一排,要求:
女生之间不能相邻。
先排男生:
4!
男生形成:
_ A _ B _ C _ D _共有:
5
个空。
3个女生必须占不同的空。
选择3个空:
女生内部排列:
3!
所以:
二十五、同学们一定要理解“为什么先排男生”
有人可能会问:
为什么不先排女生?
当然也可以尝试,但:
女生数量少时,先排男生会自然产生:
5个空然后把女生插进去。
因此有一个经验:
遇到“某一类元素不能相邻”,通常先把另一类排好,再利用空隙。
尤其当被限制的元素数量比较少时,插空法非常漂亮。
二十六、捆绑法 VS 插空法
我们用两个动画来理解。
必须相邻
A B ↓ [AB]叫:
捆绑
不能相邻
A B C ↓ _ A _ B _ C _把其他元素之间制造出空隙:
X A Y B Z C叫:
插空
二十七、把本课内容整理成一张表
| 题目条件 | 思考方法 |
|---|---|
| A、B必须相邻 | 捆绑 |
| A、B、C必须连续 | 捆绑 |
| A、B不能相邻 | 插空 / 补集 |
| A必须第一位 | 固定位置 |
| A必须最后一位 | 固定位置 |
| A必须在中间 | 固定位置 |
| A只能在第1或第5位 | 分类 |
| A、B相邻且A在B左边 | 捆绑,但内部只有1种 |
| 至少满足一个条件 | 常考虑补集 |
| 至多…… | 常分类或补集 |
二十八、CSP-J初赛的“解题流程”
以后遇到排列组合题,建议大家按照这个顺序想:
排列组合题 ↓ ┌────────┴────────┐ ↓ ↓ 有没有限制? 没有限制 ↓ ↓ 有 直接算 ↓ ┌─────┼─────┬─────┐ ↓ ↓ ↓ ↓ 相邻 不相邻 固定 至少/至多 ↓ ↓ ↓ ↓ 捆绑 插空 定位 分类/补集二十九、特别提醒:不要死背公式
例如看到:
5个人,A、B相邻。
不要第一反应:
4!×2!
而应该问:
为什么?
因为:
A B C D E被我们转换成:
[AB] C D E这是4个整体。
所以:
4!
然后:
[AB]内部:
AB BA有:
2!
所以是:
4! × 2!
这样即使数字换成:
8个人,3个人必须相邻
你也能自己推出来。
这才是我们最希望达到的状态:
不是背答案,而是学会把复杂问题“变简单”。
三十、本课必背口诀
最后大家请记住:
🪄 排列组合三大魔法
必须相邻怎么办?
👉捆起来!
不能相邻怎么办?
👉插开来!
位置已经规定怎么办?
👉先固定!
相邻 → 捆绑
不相邻 → 插空
固定位置 → 定位
“或者” → 加法
“然后” → 乘法
三十一、课后练习
题1
6个人排成一排,A、B必须相邻。
问:使用什么方法?
答案:
捆绑法
题2
5个男生、3个女生排成一排,要求3个女生必须连续。
问:使用什么方法?
答案:
捆绑法
题3
4个男生、2个女生排成一排,要求两个女生不能相邻。
问:使用什么方法?
答案:
插空法
题4
7个人排队,A必须站在最左边。
问:使用什么方法?
答案:
固定位置。
题5
7个人排队,A只能站在第1位或第7位。
问:使用什么思想?
答案:
分类 + 分步。
题6
8个人排队,A、B相邻,而且A必须在B左边。
问:和“AB相邻”相比,有什么区别?
答案:
“AB相邻”时,内部有
AB、BA两种;“AB相邻且A在B左边”时,内部只有
AB一种。
本课的知识网络
把这两课连起来,大家脑中应该形成这样一张知识网络图:
排列组合 │ ┌───────────┴───────────┐ ↓ ↓ 基础计数 特殊限制 │ │ ┌────┴────┐ ┌───────┼────────┐ ↓ ↓ ↓ ↓ ↓ 分类 分步 相邻 不相邻 固定位置 ↓ ↓ ↓ ↓ ↓ 加法 乘法 捆绑 插空 定位上一课解决“怎么算”;这一课开始解决“有条件怎么算”。
下一步再进入 “ 至少、至多、排除法、补集思想 ”,排列组合就真正进入CSP-J初赛的综合题阶段了。