排列与组合

Posted hzheng

tags:

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

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


 

 

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

加法原理:(分类)

完成一件事有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),

也即, 技术分享图片  。

 

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

技术分享图片会产生技术分享图片个排列,其中,对于任意排列技术分享图片都有技术分享图片个相同元素的排列存在,这是因为给k个元素排序,每个元素出现的概率都是相等的。所以,每一个元素相同的排列组里包含技术分享图片个排列,技术分享图片个排列可以分为技术分享图片个元素相同的排列组,也就是说,从n个元素里选取k个元素组成一个组合,其选取方法总共有技术分享图片种。

 




以上是关于排列与组合的主要内容,如果未能解决你的问题,请参考以下文章

Java 全排列与组合

_排列与组合

C++数学与算法系列之排列和组合

组合与排列

数组排列组合(多用与属性组合)

10个数字有多少种排列组合?