排列组合的四种常见情况
一文搞懂排列组合:4种情况的通用公式
在算法和数学中,经常会遇到这样的问题:
从 n 个不同的元素中选择 m 个,有多少种选择方式?
看似简单,但根据两个条件的不同,会产生 4 种经典情况:
- 是否考虑顺序
- 是否允许重复选择
这两个条件组合起来,就是排列组合中最常见的四类问题。
一张表快速理解
| 类型 | 是否考虑顺序 | 是否允许重复 | 公式 |
|---|---|---|---|
| 组合 | ❌ 不考虑 | ❌ 不允许 | C(n,m) |
| 排列 | ✅ 考虑 | ❌ 不允许 | P(n,m) |
| 可重复组合 | ❌ 不考虑 | ✅ 允许 | C(n+m-1,m) |
| 可重复排列 | ✅ 考虑 | ✅ 允许 | n^m |
下面逐个分析。
1. 组合:不考虑顺序,不允许重复
场景
从 n 个不同元素中选择 m 个,只关心选中了哪些。
例如:
有 5 个数字:
1 | 1 2 3 4 5 |
选择 3 个。
那么:
1 | 1 2 3 |
和:
1 | 3 2 1 |
认为是同一种。
公式
其中:
- n! 表示阶乘
- m! 用来去除选中元素内部的排列情况
例如:
2. 排列:考虑顺序,不允许重复
场景
选择出来的元素需要区分位置。
例如:
5个人里面选3个人排队:
1 | A B C |
和:
1 | B A C |
属于不同情况。
公式
计算:
原因:
第一个位置:
1 | 5种选择 |
第二个位置:
1 | 4种选择 |
第三个位置:
1 | 3种选择 |
3. 可重复组合:不考虑顺序,允许重复
场景
元素可以被多次选择,并且不关心顺序。
例如:
有:
1 | 苹果 香蕉 橘子 |
选择两个水果。
允许:
1 | 苹果 苹果 |
但是:
1 | 苹果 香蕉 |
和:
1 | 香蕉 苹果 |
算一种。
公式
例如:
3种水果选2个:
所有情况:
1 | 苹果苹果 |
4. 可重复排列:考虑顺序,允许重复
场景
每个位置都可以重新选择。
例如:
密码:
1 | 0 1 2 3 4 5 6 7 8 9 |
生成一个3位密码。
第一位:
1 | 10种 |
第二位:
1 | 10种 |
第三位:
1 | 10种 |
所以:
通用公式:
如何快速判断?
做题时只问两个问题。
第一个问题:顺序重要吗?
不重要:
例如:
- 选一个团队
- 抽几个商品
- 选择几个元素组成集合
使用:
1 | 组合 |
重要:
例如:
- 排队
- 密码
- 比赛排名
- 座位安排
使用:
1 | 排列 |
第二个问题:能重复吗?
不能重复:
每个元素只能使用一次。
例如:
1 | 从5个人里面选3个人 |
可以重复:
同一个元素可以多次出现。
例如:
1 | 生成密码 |
最终记忆图
1 | 是否允许重复 |
总结一句话
不重复时:
- 不看顺序 → 组合 C(n,m)
- 看顺序 → 排列 P(n,m)
可重复时:
- 不看顺序 → C(n+m-1,m)
- 看顺序 → n^m
掌握这四个公式,基本可以解决绝大多数排列组合问题。