简短的回答
排列对顺序很重要的排列进行计数 (P(n,r) = n! ÷ (n−r)!);组合计算顺序不计算的选择 (C(n,r) = n! ÷ (r!(n−r)!))。从 10 名参赛者中选择登上领奖台的 3 名选手是一种排列 — P(10,3) = 720 种不同的排序。从同样的 10 个人中选择一个 3 人委员会是一个组合 — C(10,3) = 120,因为委员会成员不关心顺序。
要点
- 组合总是小于(或等于)匹配排列,因为 C(n,r) = P(n,r) ÷ r! — 划分出对同一组重新排序的所有方法。
- C(n,r) = C(n, n−r) — 选择包含哪些 r 项相当于选择删除哪些 n−r 项。
- 当 r = n 时,两者都减少为计算所有 n 个项目:P(n,n) = n!且 C(n,n) = 1。
- 阶乘增长得非常快,因此即使 n 和 r 的值适中,P(n,r) 和 C(n,r) 也可能变得非常大。
排列组合公式
| 概念 | 公式 | 顺序很重要吗? |
|---|---|---|
| 排列 | P(n,r) = n! / (n−r)! | 是的 |
| 组合 | C(n,r) = n! / (r!(n−r)!) | 不 |
工作示例:比赛顺序与委员会选择
有 10 名跑步者 (n = 10),选择 3 (r = 3):
P(10,3) = 10 × 9 × 8 = 720(金/银/铜排序)
C(10,3) = 720 ÷ 3! = 720 ÷ 6 = 120(3 人委员会)
每组 3 名跑步者对应 3! = 6 种不同的领奖台顺序(谁获得了金、银、铜牌),这正是排列计数 (720) 是组合计数 (120) 6 倍的原因。
组合的对称规则
C(8,2) = C(8,6) = 28
从 8 个人中选择 2 个人加入到一个组中,与选择 6 个人排除在外产生的计数完全相同——这是描述相同分组的两种方式。这种对称性 C(n,r) = C(n, n−r) 可以节省计算量:如果 r 大于 n 的一半,则计算 C(n, n−r) 通常会更快。
要避免的常见错误
- 当顺序确实不重要时使用排列公式 - 这会使真实计数增加 r! 倍。
- 忘记 r 不能超过 n — 无法排列或选择比组中现有的项目更多的项目。
- Confusing the standard (no-repetition) formulas with "with repetition" versions, which apply to different problems, like a 4-digit PIN where digits can repeat.
- 在多阶段选择问题中丢失 r 的踪迹——在选择每个阶段后忘记减少剩余池。