排列与组合

组合就是一个萝卜一个坑。排序就是在坑的基础上,给萝卜排排坐。


首先了解两个基本计数原理:

加法原理:(分类)

完成一件事有k种方式,第i种方式有ni种方法,则完成该事件的方法总数为n1+n2+..+nk

乘法原理:(分步骤)
完成一件事有m个步骤,其中第i步有ni种方法,则完成该事件的方法总数为n1*n2*...*nk


排列:
就是从n个不同的元素中任意取出m个,进行排序。

对于排列数,可以看作“分步解决”的问题,即:

第一步:从n个对象中选取1个,有n中选择方法。

第二步:从剩下的n-1个对象中选取1个,有n-1种选择方法。

... ...

第m步:从剩下的n-(k-1)个对象中选择1个,有n-k+1种选择方法。

所以,按照乘法原理,完成这个事件的方法总数为n(n-1)(n-2)...(n-k+1),

也即, \frac { n! }{ (n-k)! }   。

组合:
即去掉排列中所有元素相同的排列,使每种元素相同的排列组只剩下一个排列即可。

A\begin{matrix} k \\ n \end{matrix}会产生\frac { n! }{ (n-k)! } 个排列,其中,对于任意排列\left( { a }_{ 1 },\quad { a }_{ 2 },\quad \cdots ,\quad { a }_{ k } \right) 都有A\begin{matrix} k \\ k \end{matrix}个相同元素的排列存在,这是因为给k个元素排序,每个元素出现的概率都是相等的。所以,每一个元素相同的排列组里包含A\begin{matrix} k \\ k \end{matrix}个排列,\frac { n! }{ (n-k)! } 个排列可以分为\frac { A\begin{matrix} k \\ n \end{matrix} }{ A\begin{matrix} k \\ k \end{matrix} } 个元素相同的排列组,也就是说,从n个元素里选取k个元素组成一个组合,其选取方法总共有C\begin{matrix} k \\ n \end{matrix}=\frac { A\begin{matrix} k \\ n \end{matrix} }{ A\begin{matrix} k \\ k \end{matrix} } =\frac { n! }{ k!\left( n-k \right) ! } 种。

猜你喜欢

转载自www.cnblogs.com/HZheng/p/8971782.html