排列组合:从可能性中找到最优解
产品经理的数学课 · 第22讲
排列组合:从可能性中找到最优解
你有 5 个功能想上线,但资源只够做 3 个。有多少种组合?哪种组合最有价值?排列组合帮你系统地思考「从 N 个选项中选 K 个」的问题。
前言
你的产品有 4 个页面:
- 首页
- 商品列表页
- 商品详情页
- 购物车页
用户从首页进入,最终完成购买。用户有多少种可能的路径?
直觉:4 个页面,4! = 24 种路径?
不对。用户不能从首页直接跳到购物车——必须先选商品。所以实际路径比 24 少。
排列组合帮你精确计算「有多少种可能」。
核心概念
计数原理
加法原理:做一件事有 n 种方法,做另一件事有 m 种方法,总共有 n + m 种方法。
乘法原理:做一件事有 n 种方法,做完后做另一件事有 m 种方法,总共有 n × m 种方法。
例子:
- 从家到公司有 3 条路(加法原理:选 1 条)
- 从公司到餐厅有 2 条路(加法原理:选 1 条)
- 从家经过公司到餐厅有 3 × 2 = 6 条路(乘法原理)
排列:顺序重要
排列(Permutation):从 n 个元素中选 k 个,顺序重要。
$$ P(n, k) = \frac{n!}{(n-k)!} $$
例子:4 个页面,用户访问 3 个(顺序重要)。
P(4, 3) = 4! / (4-3)! = 24 / 1 = 24 种路径
常见的排列问题:
- 密码组合:4 位数字密码有多少种?10^4 = 10,000
- 排名:10 个候选人选前 3 名有多少种?P(10, 3) = 720
组合:顺序不重要
组合(Combination):从 n 个元素中选 k 个,顺序不重要。
$$ C(n, k) = \frac{n!}{k!(n-k)!} $$
例子:4 个页面,用户访问哪 3 个(顺序不重要)。
C(4, 3) = 4! / (3! × 1!) = 24 / 6 = 4 种组合
常见的组合问题:
- 从 5 个功能中选 3 个有多少种?C(5, 3) = 10
- 从 10 个用户中选 5 个做测试有多少种?C(10, 5) = 252
排列 vs 组合:什么时候用哪个?
| 问题 | 顺序重要? | 方法 |
|---|---|---|
| 4 位数字密码 | 是 | 排列 |
| 选 3 个功能上线 | 否 | 组合 |
| 10 人赛跑排名 | 是 | 排列 |
| 选 5 人做测试 | 否 | 组合 |
| 4 个页面的访问路径 | 是 | 排列 |
有重复的排列
有重复的排列:n 个元素中有重复,选 k 个(顺序重要)。
$$ \frac{n!}{n_1! \times n_2! \times … \times n_m!} $$
例子:「MISSISSIPPI」有多少种排列?
11! / (1! × 4! × 4! × 2!) = 39916800 / (1 × 24 × 24 × 2) = 34,650 种
组合的实际应用:概率计算
用组合计算概率:
P(事件) = 有利结果数 / 总结果数
例子:从 52 张扑克牌中抽 5 张,拿到同花(5 张同花色)的概率是多少?
- 总结果数:C(52, 5) = 2,598,960
- 有利结果数:C(13, 5) × 4 = 5,148
- P(同花) = 5,148 / 2,598,960 ≈ 0.2%
产品经理的应用
应用场景一:功能优先级排序
你有 5 个功能想上线,但资源只够做 3 个。有多少种组合?
C(5, 3) = 10 种组合
列出所有组合:
| 组合 | 功能 1 | 功能 2 | 功能 3 |
|---|---|---|---|
| 1 | A | B | C |
| 2 | A | B | D |
| 3 | A | B | E |
| 4 | A | C | D |
| 5 | A | C | E |
| 6 | A | D | E |
| 7 | B | C | D |
| 8 | B | C | E |
| 9 | B | D | E |
| 10 | C | D | E |
评估每种组合的价值,选择最优的 3 个功能。
应用场景二:A/B 测试的多重比较
你测试了 3 个指标:转化率、停留时间、客单价。
有多少种可能的比较?
C(3, 2) = 3 种比较:
- 转化率 vs 停留时间
- 转化率 vs 客单价
- 停留时间 vs 客单价
需要校正:测试 3 个指标,期望有 0.15 个假阳性(5% × 3)。
应用场景三:用户路径分析
你的电商 App 有 5 个关键页面:首页 → 搜索 → 列表 → 详情 → 购物车。
用户有多少种可能的路径?
如果必须按顺序访问:只有 1 种路径。
如果可以跳过某些页面:
- 跳过搜索:首页 → 列表 → 详情 → 购物车
- 跳过列表:首页 → 搜索 → 详情 → 购物车
- …
总路径数:2^(5-1) = 16 种(每个中间页面可选访问或跳过)
分析每种路径的转化率,找出最优路径。
常见误区
误区一:排列和组合混淆
「从 5 个功能中选 3 个,有多少种?P(5, 3) = 60」
功能上线的顺序不重要——选 A、B、C 和选 B、A、C 是一样的。应该用组合,不是排列。
误区二:忘记重复元素
「「AABB」有多少种排列?4! = 24」
A 和 B 各重复 2 次。正确计算:4! / (2! × 2!) = 6 种。
误区三:枚举不完整
「从 3 个中选 2 个,有 3 种:AB, AC, BC」
正确。但如果你漏了 BC,就会错误地认为只有 2 种。系统地枚举,不要遗漏。
误区四:概率计算错误
「从 52 张牌中抽 2 张都是红桃的概率是 (13/52) × (12/51)」
这是对的(无放回抽样)。但如果你错误地计算为 (13/52) × (13/52) = 1/16,就忽略了无放回的影响。
PM/BA 应用
| 场景 | 排列/组合工具 | 决策价值 |
|---|---|---|
| 功能优先级 | 组合 C(n,k) | 系统评估所有可能 |
| A/B 测试 | 组合 C(n,2) | 控制多重比较 |
| 用户路径 | 幂集 2^n | 找出最优路径 |
| 密码安全 | 排列 n^k | 评估密码强度 |
| 概率计算 | 组合 C(n,k) | 准确计算概率 |
课后测验
题目 1
你有 6 个功能,资源只够做 2 个。有多少种组合?
A. 12
B. 30
C. 15
D. 36
查看答案与解析
答案:C(15)
从 6 个功能中选 2 个,顺序不重要(选 A,B 和选 B,A 是一样的)。
C(6, 2) = 6! / (2! × 4!) = 720 / (2 × 24) = 15 种
A 是 P(6,2) 的错误——排列是 6 × 5 = 30
题目 2
你的 App 有 4 个页面,用户访问 3 个(顺序重要)。有多少种可能的路径?
A. 4
B. 12
C. 24
D. 64
查看答案与解析
答案:C(24)
从 4 个页面中选 3 个,顺序重要(首页→列表→详情 ≠ 首页→详情→列表)。
P(4, 3) = 4! / (4-3)! = 24 / 1 = 24 种
B 是 C(4,3) × 3! 的错误——组合是 4,排列是 24
题目 3
你测试了 4 个指标,想做两两比较。需要校正多少次?
A. 2 次
B. 4 次
C. 6 次
D. 12 次
查看答案与解析
答案:C(6 次)
4 个指标两两比较,有多少种?
C(4, 2) = 4! / (2! × 2!) = 6 次比较
Bonferroni 校正:α = 0.05 / 6 ≈ 0.0083
每次比较用 α = 0.0083 而不是 0.05。
本课要点
- 排列:顺序重要,P(n, k) = n! / (n-k)!
- 组合:顺序不重要,C(n, k) = n! / (k! × (n-k)!)
- 加法原理:n + m 种选择(互斥)
- 乘法原理:n × m 种选择(分步)
- 概率计算:有利结果数 / 总结果数
延伸阅读
- Grimaldi, 《Discrete and Combinatorial Mathematics》 — 离散数学教材
- Liu, 《Introduction to Combinatorial Mathematics》 — 组合数学入门
- Knuth, 《The Art of Computer Programming》 — 算法中的排列组合
下一步
下一课:图论基础:用网络思维理解产品 — 用图论分析用户路径和社交网络。
工具提示:画出你的产品的所有可能路径。用组合数计算路径总数——这能帮你评估路径优化的复杂度。