- gf24240 的博客
《梦溪笔谈·C++》卷三:排列组合
- 2025-3-29 9:21:13 @
排列和组合是组合数学中的基本概念,用于计算从一组元素中选取特定数量元素的不同方式。它们的核心区别在于 是否考虑顺序。
1. 排列(Permutation)
排列考虑元素的顺序,即相同的元素但不同的顺序被视为不同的排列。
公式:
-
无重复排列:从 个不同元素中选取 个元素的有序排列数:
其中 (n的阶乘)表示 。
-
全排列:当 时,所有 个元素的排列数为:
-
重复排列:如果元素可重复选取,排列数为:
例子:
从 3 个元素 中选 2 个的排列为 ,共 种。
2. 组合(Combination)
组合不考虑顺序,即相同的元素无论顺序如何都视为同一种组合。
公式:
- 从 个不同元素中选取 个元素的组合数(记作 或 ):$$C(n, k) = \frac{P(n, k)}{k!} = \frac{n!}{k!(n - k)!} $$这里除以 是为了消除顺序的影响。
例子:
从 3 个元素 中选 2 个的组合为 ,共 种。
关键区别:
- 排列:选且排序(顺序重要)。
- 组合:仅选择(顺序无关)。
记忆技巧:
- 排列公式 直接计算阶乘比值。
- 组合公式 在排列基础上除以 。