项目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种选择