一、定义
从n个不同的元素中,任取m(m≤n)个元素为一组,叫作从n个不同元素中取出m个元素的一个组合。
二、例题
从甲、乙、丙3名同学中选出2名去参加一项活动,有多少种不同的选法?
分析:
有3种:甲乙,甲丙,乙丙。
三、排列与组合的关系
组合和排列不同的地方,在于组合是顺序无关的,而排列跟顺序有关系。
比如,甲乙和乙甲是同一个组合,但甲乙和乙甲是两种不同的排列。
再比如abc是一个组合,对应的排列则有abc, acb, bac, bca, cab, cba六种。
四、公式
在推导公式之前,咱们看一个具体例子:
从a,b,c,d四个字母中取三个数,求排列数和组合数。
分析:
组合数有4个:abc, abd, acd, bcd
排列数有24个: abc, abd, acb, acd, adb, adc, bac, bad, bca, bcd, bda, bdc, cab, cad, cba, cbd, cda, cdb, dab, dac, dba, dbc, dca, dcb
列个表,将组合和排列对应起来
组合 | 排列 |
---|---|
abc | abc, acb, bac, bca, cab, cba |
abd | abd, adb, bad, bda, dab, dba |
acd | acd, adc, cad, cda, dac, dca |
bcd | bcd, bdc, cbd, cdb, dbc, dcb |
从上表可以看出,组合与排列的区别,就是咱们上段落中所提到的,在组合的基础上进行排序就成了排列。而排序方案数实际上就是全排列,在上表中是3! = 6种
所以,得到了公式:组合 * 排序方案数 = 排列
==> 组合 = 排列 / 排序方案数
即
C(n, m) = A(n, m) / m!
= n! / [m! (n - m)!]
特别地,有C(n, 0) = 1
这里,C是combination的缩写,表示组合数。n为表示全部可选的元素,m表示要选出多少个元素。
五、计算
例1
C(3, 0) = 1
C(3, 1) = A(3, 1) / 1! = 3 / 1! = 3
C(3, 2) = A(3, 2) / 2! = 3 * 2 / 2 = 3
C(3, 3) = A(3, 3) / 3! = 3 ! / 3! = 1
例2
C(4, 0) = 1
C(4, 1) = A(4, 1) / 1! = 4
C(4, 2) = A(4, 2) / 2! = 4 * 3 / 2 = 6
C(4, 3) = A(4, 3) / 3! = 4 * 3 * 2 / 3! = 4
C(4, 4) = A(4, 4) / 4! = 4! / 4! = 1
例3
C(5, 0) = 1
C(5, 1) = A(5, 1) / 1! = 5
C(5, 2) = A(5, 2) / 2! = 5 * 4 / 2! = 10
C(5, 3) = A(5, 3) / 3! = 5 * 4 * 3 / 3! = 10
C(5, 4) = A(5, 4) / 4! = 5 * 4 * 3 * 2 / 4! = 5
C(5, 5) = A(5, 5) / 5! = 5! / 5! = 1
六、两个重要的性质
(一)从上面的三个例题中,可以发现一个规律:
C(n, m) = C(n, n - m)
证明:
C(n, n - m)
= n! / {(n - m)! [n - (n - m)]!}
= n! / [(n-m)! m!]
= C(n, m)
(二)
C(n, m) = C(n - 1, m) + C(n - 1, m - 1)
分析:
一个班上有n个学生,现在选出m个开除,那么有两种选法:
1 不开除班长,从剩下n - 1个里开除m个
2 开除班长,再从剩下n - 1个里开除m - 1个
证明:
了解小朋友学编程请加微信307591841 或QQ群581357582
关注公众号请扫描二维码
qrcode_for_kidscode_258.jpg