
排列和组合是数学中用来计数的一个重要分支,算法如下:
排列:指从n个不同元素中取出m个元素(不放回)组成一个有序的整体。其排列数记为 A(m,n),计算公式为:
```
A(m,n) = n(n-1)(n-2)...(n-m+1)
```
例如,从 5 个不同的元素中取出 3 个元素,其排列数为:A(3,5) = 5*4*3 = 60。
组合:指从n个不同元素中取出m个元素(不放回)所能组成的所有不同的集合。其组合数记为 C(m,n),计算公式为:
```
C(m,n) = n! / (m! * (n-m)!)
```
例如,从 5 个不同的元素中取出 3 个元素,其组合数为:C(3,5) = 5! / (3!*2!) = 10。
加减法的应用:有些排列组合问题可以通过将其转化为已知的排列组合问题来快速解决。例如,从 n 个不同的元素中选取 m 个元素,其中必须包含元素 A,则有:
```
A(m,n) = A(m-1,n-1) + A(m,n-1)
```
这个公式表示,当我们要从 n 个元素中选取 m 个元素中必须包含 A 时,有两种情况:包含 A 时,剩下的 m-1 个元素从 n-1 个元素中选取,或者不包含 A 时,m 个元素从 n-1 个元素中选取。同理,我们可以推出组合数的加减法应用公式:
```
C(m,n) = C(m-1,n-1) + C(m,n-1)
```
排列组合计算数合数Cnm中 ,当m比较接近 n时,可用组合数的性质 :从n个元素中取m个元素的组合数等于从n个元素中取n-m个元素的组合数 。
即Cnm=Cn(n-m)进行简便运算 。
C7 5=C7 (7-5)
=C72=7×6/2×1=21。