算法竞赛进阶指南0x36 组合计数

加法原理

        若完成一件事的方法有 N 类,其中第 i 类方法包括 ai 种不同的方法,且这些方法互不重合,则完成这件事共有 a1 +  a2 + a3 + a4 +...... + aN 种不同的方法。

乘法原理

        若完成一件事需要 N 个步骤,其中第 i 个步骤有 ai 种不同的完成方法,且这些步骤互不干扰,则完成这件事共有 a1 * a2 * ...... * aN 种不同的方法。

排列数

        从 N 个不同元素中依次取出 M 个元素排成一列,产生的不同排列的数量为:

$$  A_{N}^{M} $$

$$ 即 N * (N - 1) * ...... * (N - M + 1) $$

组合数

        从 N 个不同元素中取出 M 个组成一个集合 (不考虑顺序),产生的不同集合数量为:

 $$  C_{N}^{M} $$

$$  即 n! / (m! * (n - m)!) $$

性质

$$ C_{N}^{M} = C_{N}^{N - M} $$

$$ C_{N}^{M} = C_{N - 1}^{M} + C_{N - 1}^{M - 1} $$

$$ C_{N}^{0} + C_{N}^{1} + C_{N}^{2} +\cdot \cdot  \cdot  + C_{N}^{N} = 2^N $$

证明:

$$ C_{N}^{M} = C_{N}^{N - M} $$

        由组合数的定义,对于从 N 个不同元素中取出 M 个组成的每个集合,剩余未取出的元素也构成一个集合,两个集合一一对应,所以性质一成立:

$$ C_{N}^{M} = C_{N - 1}^{M} + C_{N - 1}^{M - 1} $$

从 N 个不同元素中取出 M 个组成一个集合有两类方法:取 N 号元素、不取 N 号元素。若取 N 号元素,则应在剩余 N - 1 个元素中选出 M - 1 个,有

$$  C_{N - 1}^{M - 1} 种取法 $$

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值