排列组合的一些公式及推导

Posted 1024th

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排列组合的一些公式及推导相关的知识,希望对你有一定的参考价值。

排列数公式

\[A_n^m=n(n-1)(n-2)\cdots(n-m+1)=\frac{n!}{(n-m)!}\]
(规定\(0!=1\)

推导:把\(n\)个不同的元素任选\(m\)个排序,按计数原理分步进行

取第一个:有\(n\)种取法;

取第二个:有\((n-1)\)种取法;

取第三个:有\((n-2)\)种取法;?

……

取第\(m\)个:有\((n-m+1)\)种取法;

……

最后一步,取最后一个:有\(1\)种取法。

根据分步乘法原理,得出上述公式。

组合数公式

\[C_n^m=\frac{A_n^m}{A_m^m}=\frac{n(n-1)(n-2)\cdots (n-m+1)}{m!}=\frac{n!}{m!(n-m)!}\]

\[C_n^n=1\]

证明:利用排列和组合之间的关系以及排列的公式来推导证明。

将部分排列问题\(A_n^m\)分解为两个步骤:?

第一步,就是从\(n\)个球中抽\(m\)个出来,先不排序,此即组合数问题\(C_n^m\)

第二步,则是把这\(m\)个被抽出来的球排序,即全排列\(A_m^m\)

根据乘法原理,\(A_n^m=C_n^m A_m^m\),那么
\[C_n^m=\frac{A_n^m}{A_m^m}=\frac{n(n-1)(n-2)\cdots (n-m+1)}{m!}=\frac{n!}{m!(n-m)!}\]

组合数递推公式

\[C_n^m=C_{n-1}^m+C_{n-1}^{m-1}\]

根据分类计数原理:要么含有新加元素要么不含新加元素。

组合求和公式

\[C_n^0+C_n^1+C_n^2+\cdots+C_n^n=2^n\]

我们感性认知一下,上面这个式子的左边表示什么呢?

把从\(n\)个球中抽出\(0\)个球的组合数(值为\(1\))、抽出\(1\)个球的组合数、抽出\(2\)个球的组合数、……、抽出\(n\)个球的组合数相加。

换句话说,就是从\(n\)个球中随便抽出一些球,问一共有多少种组合。

对于第1个球,可以选,也可以不选,有2种情况。

对于第2个球,可以选,也可以不选,有2种情况。

对于任意一个球,可以选,也可以不选,有2种情况。

根据乘法原理,一共\(\underbrace{2\times 2\times \cdots \times 2}_{n\text{个2相乘}} = 2^n\)种组合。

想要严谨的证明?数学归纳法

  1. \(m=1\)时,\(C_1^0+C_1^1=2=2^1\)成立。
  2. 假设\(n=k(k\geq 1,k\in \mathbb{N}^*)\)时等式成立,即
    \[\sum_{i=0}^{k} C_k^i=2^n\]
    成立,当\(n=k+1\)时,
    \[\begin{aligned} & C_{k+1}^0 + C_{k+1}^1 + C_{k+1}^2 + \cdots + C_{k+1}^{k} + C_{k+1}^{k+1}\ = & C_{k+1}^0+ \left(C_k^0+C_k^1\right) + \left(C_k^1+C_k^2\right) + \cdots + \left(C_k^{k-1}+C_k^k\right) + C_{k+1}^{k+1}\ = & \left(C_k^0 + C_k^1 + C_k^2 + \cdots + C_k^k\right) + \left(C_k^0 + C_k^1 + C_k^2 + \cdots + C_k^k\right)\ = & 2 \times 2^k\ = & 2^{k+1} \end{aligned}\]
    等式也成立。
  3. 由1、2得,等式对\(n\in \mathbb{N}^*\)都成立。

也可偷懒地用二项式定理证明(其实二项式定理也是用数学归纳法证明的):

\[(a+b)^n=\sum_{k=0}^{n}C_n^k a^{n-k}b^k\]
\(a=b=1\),就得到了
\[\sum_{i=0}^{n} C_n^i=2^n\]

以上是关于排列组合的一些公式及推导的主要内容,如果未能解决你的问题,请参考以下文章

如何直观地理解排列数和组合数

一些简单的排列组合问题

M个数任选N个数(N<M)这样的公式是啥

排列组合公式

排列组合的问题

Python 排列组合