【离散数学】计数/排列组合

离散数学第三篇,讨论基本的计数技术——排列组合及其推广。组合数学是离散数学的重要组成部分,这里比较简略,待到有时间详细学习组合数学后再讨论一些复杂一点的问题。那何为组合数学呢?组合数学(Combinatorics)是研究一定条件的组态的存在、计数以及构造的科学。直白说就是研究物体如何安排的科学。这里的组合数学是狭义的组合数学,广义的组合数学就是离散数学。因计算机科学的核心就是使用算法研究离散数据,所以组合数学在算法科学中具有重要地位。本文主要内容:基本计数原则、鸽巢原理、排列组合及其推广、二项式定理与恒等式以及生成排列组合的算法。


基本计数原则

乘法原则

如果一个任务被分解为相互独立的两个步骤,完成第一个步骤有 n1 n 1 种方法,第二个步骤有 n2 n 2 种方法,则完成整个过程方法数为 n1n2 n 1 ⋅ n 2 。推广到多个步骤就是 n1n2nk n 1 ⋅ n 2 ⋅ ⋯ ⋅ n k ,共k个步骤, ni n i 是第 i i 个步骤的方法数。

用集合语言描述如下: | A 1 × A 2 × × A k | = | A 1 | | A 2 | | A k |

求和原则

如果有两种独立的途径完成一项任务,第一种有 n1 n 1 种方法,第二种有 n2 n 2 种方法,则完成该任务共有 n1+n2 n 1 + n 2 种方法。推广到多种途径就是 n1+n2++nk n 1 + n 2 + ⋯ + n k 种方法。

也称为加法原则。用集合语言描述: |A1A2Ak|=|A1|+|A2|++|Ak| | A 1 ∪ A 2 ∪ ⋯ ∪ A k | = | A 1 | + | A 2 | + ⋯ + | A k | ,其中 AiAj= A i ∩ A j = ∅ ,对所有 i i j .

减法原则

如果一个任务可以有两种途径完成,第一种有 n1 n 1 种方法,第二种有 n2 n 2 种方法,两种途径中有 n3 n 3 种方法是相同的。则完成该任务共有 n1+n2n3 n 1 + n 2 − n 3 种方法。

集合语言描述:即是两个集合的容斥原理 |A1A2|=|A1|+|A2||A1A2| | A 1 ∪ A 2 | = | A 1 | + | A 2 | − | A 1 ∩ A 2 |

除法原则

如果一个任务可以由 n n 种方法完成,而在这 n 中方法中每一种完成的方式在 n n 种中正好有 d 种与之对应(即在该问题的研究中可以看做一种方法),则完成该任务的方法数为 n/d n / d

这几个原则乃是计数最基础的原则,很好理解。


鸽巢原理

鸽巢原理的通俗描述:如果鸽子比笼子多,那么一定有一个笼子里面至少有两只鸽子。

鸽巢原理

描述:把 k+1 k + 1 个甚至更多物体放入 k k 个盒子,那么至少有一个盒子里面有两只甚至更多个物体。

推论:从 k + 1 个甚至更多个元素的集合到 k k 个元素的集合的函数 f 一定不是一对一函数。

广义鸽巢原理

描述:将 N N 个物体放入 k 个盒子,那么至少有一个盒子里面有 N/k ⌈ N / k ⌉ 个物体。

应用

定理:每个由 n2+1 n 2 + 1 个不同实数构成的序列都包含一个长度为 n n 的严格递增子序列或严格递减子序列。

上述定理可以使用广义鸽巢原理证明。

拉姆齐数(Ramsey number) R ( m , n ) (其中 m,n2 m , n ≥ 2 ) 是这样一个数 N N ,使得在 N 个人中有 m m 个人互相认识或 n 个人互相不认识需要的最小人数 N N 。其中两个人要么互相认识,要么互相不认识。

拉姆齐定理(Ramsey theory)是组合学的一个重要组成部分,用来处理集合元素的子集分配问题。
拉姆齐数也是图论中的重要函数之一。已知的拉姆齐数非常少,这包括

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值