Learning
VOL. VI · NO. 22 · Mathematics · 01 JAN 1970

排列组合:从可能性中找到最优解

数学 · 01 JAN 1970 · 8 min read · 1,786 words
· · ·

产品经理的数学课 · 第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
1ABC
2ABD
3ABE
4ACD
5ACE
6ADE
7BCD
8BCE
9BDE
10CDE

评估每种组合的价值,选择最优的 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。


本课要点

  1. 排列:顺序重要,P(n, k) = n! / (n-k)!
  2. 组合:顺序不重要,C(n, k) = n! / (k! × (n-k)!)
  3. 加法原理:n + m 种选择(互斥)
  4. 乘法原理:n × m 种选择(分步)
  5. 概率计算:有利结果数 / 总结果数

延伸阅读

  • Grimaldi, 《Discrete and Combinatorial Mathematics》 — 离散数学教材
  • Liu, 《Introduction to Combinatorial Mathematics》 — 组合数学入门
  • Knuth, 《The Art of Computer Programming》 — 算法中的排列组合

下一步

下一课:图论基础:用网络思维理解产品 — 用图论分析用户路径和社交网络。


工具提示:画出你的产品的所有可能路径。用组合数计算路径总数——这能帮你评估路径优化的复杂度。