项目github地址:
bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
记录一下排列组合中一些重要又常用的公式。
排列组合
算法
1。最近一直在考虑从m个数里面取n个数的
算法
。最容易理解的就是递归,但是其效率,实在不能使用。一直找寻中,今日得果2。
算法
来源与互联网组合
算法
本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中。 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 然后从左到右扫描
共n个球,取n个球,有多少种排列?
要从n个球中取n个球,可以想象有n个位置,一个位置放一个球。
第一个位置,有n种选择,然后第2个位置,剩n-1种选择,第3个位置,剩n-2种选择,…依次类推,第n个位置,只剩1种选择。
所以,n个位置共有
n *(n-1)*(n-2)*…* 1 = n!
所以全排列
公式
:
Ann=n!A_n^n = n!Ann=n!
非全排列:
共n个球,取m个球,有多少种排列?
要从n个球中取m个球,可以想象有m个位置,一个位置放一个球。
第一个位置,有n种选择