先问大家一个问题:

对于 4 位数密码,由 0~9 的数字组成,因此每一位都有 10 种选择,请问有多少种可能的排列?

答案是 10000

想要解答这个问题,就需要用到排列数的概念啦~

什么~

排列组合cn公式-程序员数学 | 排列数(以及排列数公式的推导过程)_80楼网赚论坛|80楼网创

你不知道排列数也能算出答案?

那不妨试试这道题:

在一家餐厅里,厨师长考虑将 10 道菜品放入包含 3 道菜的套餐中,需要计算所有可能的菜单排列,请问共有多少种不同的菜单排列?

答案是 120

如果不知道结果是怎么算出来的,那就让我们开始今天的数学之旅吧~

排列数的概念

排列数(Permutation)是组合数学中的其中一个概念,

它表示从 n 个不同元素中取出 m 个元素(m ≤ n)进行有序排列的所有可能性。

注意:在排列数中,元素的顺序是需要考虑在内的(也就是说即使元素相同,但排列顺序不同,也会被视为是不同的排列)。

举个简单的例子,假设我们有三个不同颜色的小球:

排列组合cn公式-程序员数学 | 排列数(以及排列数公式的推导过程)_80楼网赚论坛|80楼网创

当我们从中拿出 1 颗小球时,那么可能是拿到 A,也可能是拿到 B,当然 C 也是有可能被拿到的,所以有 3 种不同的组合(此时排列数为 3)

当我们从中拿出 2 颗小球时,那么所有存在的可能性是:AB、BA、AC、CA、BC,一共有 6 种不同的组合(此时排列数为 6)

当我们从中拿出 3 颗小球时,那么所有存在的可能性是:ABC、ACB、BAC、BCA、CAB、CBA,一共也是有 6 种不同的组合(此时排列数也为 6)

上面这种是穷举法~

也就是暴力解决问题的方法~

一般当我们面对一个未知的事物,自身所拥有的能力无法予以实现时,通常我们就会诉诸于暴力来解决问题

排列组合cn公式-程序员数学 | 排列数(以及排列数公式的推导过程)_80楼网赚论坛|80楼网创

OK,其实我们有更 “聪明” 的解决方案~

使用排列数公式:

阶乘!

大家看到排列数公式了,这里面的感叹号并不是 “哇塞” 的意思,它其实是阶乘的数学表示方式~

n! 表示n的阶乘,表示从 1 乘到 n 的结果。

例如:

0! = 1

1! = 1

2! = 2 × 1

3! = 3 × 2 × 1

4! = 4 × 3 × 2 × 1

5! = 5 × 4 × 3 × 2 × 1 = 120

当我们从中拿出 1 颗小球时,n = 3、m = 1,代入公式的计算过程是:

当我们从中拿出 2 颗小球时,n = 3、m = 2,代入公式的计算过程是:

当我们从中拿出 3 颗小球时,n = 3、m = 3,代入公式的计算过程是:

▲注1:如果对于 0! = 1 的结果有疑惑的鱼油,可以看一下这篇文章 -> 《你知道为什么 n^0 等于 1,0! 也等于 1 吗?》()

▲注2:本文所有的感叹号(!)均表示某个数的阶乘,为了防止大家误读,小甲鱼会使用波浪号来代表小甲鱼很惊讶~

排列数公式的推导过程

接下来我们讲解排列数公式 P(n, m) = n! / (n-m)! 的推导过程。

还是刚刚 3 颗小球的例子,

第一种情况,从 3 颗小球中拿出 1 颗,那么我们有 3 种选择:

第二种情况,从 3 颗小球中拿出 2 颗,第一个位置仍然有 3 种选择,但第二个位置就只有 2 种选择了(因为第一个位置拿走了一颗小球):

对于这种情况,那么总共的选择数量就是 3 × 2 = 6

第三种情况,同样的道理,如果要从 3 颗小球中拿出 3 颗,那么就是这个样子:

总共的选择数量就是 3 × 2 × 1 = 6

那这个跟公式推导有什么关系呢?

P(n, m) 表示从 n 个元素中拿出 m 个元素,一共有多少种不同的选择。

从第三种情况来看,n = 3、m = 3,那么公式就是 P(n, m) = n!

但是这个公式只能解决满选满配的情况,

如果是从 n 个元素中拿出部分元素 m(即 m < n)排列组合cn公式,这个公式就不能用了~

我们需要设计一个通用的公式才行~

考虑第二种情况,n = 3、m = 2,那么公式 P(n, m) = n × (n-1) = 3 × 2

相当于少了一位,对吧?

是不是就相当于:

再考虑第一种情况,n = 3、m = 1,那么公式 P(n, m) = n = 3

相当于少了两位,对吧?

那我们是不是可以得到公式:

OK,现在思路逐渐清晰起来了~

P(3, 3) 刚刚我们已经推论过了,就是 3!

现在重点是下面除数是什么?

你看排列组合cn公式,少了两位就是 1(因为总共只剩下一个位置),少了一位就是 2 × 1(因为总共剩下两个位置)

所以除数其实就是 (n – m)!

那么合起来就是我们公式啦:

搞定~

排列组合cn公式-程序员数学 | 排列数(以及排列数公式的推导过程)_80楼网赚论坛|80楼网创

戳原文,更有料!

———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需88元,全站资源免费下载点击查看详情
站 长 微 信:chuangyedemao