原文来自知乎:https://zhuanlan.zhihu.com/p/41855459


看完本篇文章,保证你彻底理解「排列」「组合」这两个相爱相杀的概念到底有何区别。

排列英文名叫 Arrangement 或者 Permutation,本文采用更 fancy 的 Permutation来表示排列,下文统称为 P

组合英文名叫 Combination,下文统称为 C

P 和 C 的本质区别在于:决策的顺序对结果有没有影响。

下面举例说明

现在有8个人,他们的名字分别为:

  1. Alice
  2. Bob
  3. Catherine
  4. Donald
  5. Elizabeth
  6. Floria
  7. Gates
  8. Hinton

现在有 3 个奖杯,本别为 Golden 金牌,Silver 银牌,Bronze 铜牌。

我们的任务是:将这 3 个奖牌颁发给 8 个人中的 3 个,先颁发金牌,再颁发银牌,再颁发铜牌。问颁发奖牌的不同方式总共有哪些?

那么很明显,这是一个 Permutation 排列的问题,因为把金牌先颁给 Alice,再把银牌颁给 Bob,跟把金牌先颁给 Bob,再把银牌颁给 Alice 这是两种不同的颁奖方式。

好了,现在假设我们先把金牌颁发给 Alice,再把银牌颁发给 Bob,再把铜牌颁发给 Catherine:

image

第一步:颁发金牌 ️,可以在8个人中任选一个,有8种选择。A可以被替换为 B C D E F G H中的任何一个。

第二步:颁发银牌 ,可以在除去已经获得金牌的人之外的7个人中任选一个,有7种选择。

第三步:颁发铜牌 ,在已经获得金牌、银牌的两个人之外的6个人中任选一个,有6种选择。

那么很明显,总共的颁奖方式有

8 * 7 * 6 种

以此类推,假如我们现在要颁发 8 个奖牌给 8个人,那么我们会按照上述方法,每次颁发一种奖牌,直到奖牌被颁发完为止,这样,颁发奖牌的方式总共有:

8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 种

但是,我们只颁发 3 个奖牌就不颁发了呀,怎么才能在乘到 5 那里停止呢?很明显,摆脱 5 * 4 * 3 * 2 * 1 即可,我们的做法是:把这个尾巴除掉就行啦!

image

也就是:

image

这个公式相当于在说:

我们只使用 8 个数字的前 3 个!

那么,如果我们现在有 n 个运动员,要按顺序地颁发 k 个奖牌,有多少不同的颁奖方式呢?答案是:

image

至此,我们得到:

如果要想在 n 个物品中,按顺序的选择 k 个物品,那么选择的方式总共有这么多种:

image

至此,排列的计算公式怎么来的应该清楚了吧。

接下来讲组合

同样还是颁奖,这次我们颁的不是金、银、铜牌,而是 3 个一模一样的可乐瓶,不好意思,主办方真的就是来搞笑的,可乐瓶真的 nobody cares,所以给谁先颁奖后颁奖,结果都是一样的,Alice 先颁发到一个可乐瓶、Bob 后拿到,跟 Bob先拿到一个可乐瓶、Alice后拿到,两种结果都是一样的。

那么在 8 个人当中选 3 个人颁发一样的可乐瓶,有多少种颁发方法呢?

在上面排列的基础上,也就是给三个人颁发的是不同的奖杯,最终选出的三个人,拿奖是有顺序的,也就是,最后计算出来的所有方法中,把三个奖杯的放置顺序进行了排列。

但是现在,如果颁发的是可乐瓶,那么,获奖的顺序变得不再重要,谁先得,谁后得,结果都是一样的。上面排列的结果已经把不同颁发顺序视作不同颁发方法了,现在,3 个人中,不同的颁发顺序都是同一种!

所以,我们只需要把「上一步排列获得的结果」除以「不同颁发顺序的总数」,得到的就是可乐瓶颁发方法的总数。

不同颁发顺序的总数有 3!种

所以,总共有这么多种:

i

继续,如果要想在 n 个物品中,选择 k 个物品出来,选择的顺序无所谓,那么选择的方式总共有这么多种

i

C(n,k)也记作:

i

ok,至此我想你们应该懂得排列跟组合的区别,以及他们的计算公式是怎么来的吧?