《离散数学及其应用》第3章:计数

鸽巢原理

鸽巢原理:如果k+1个或更多的物体放入k个盒子,那么至少有一个盒子包含了2个或更多的物体。

广义鸽巢原理:如果n个物体放入k个盒子,那么至少有一个盒子包含了至少n/k(向上取整)个物体。

例:为保证一个州2500万个电话有不同的电话号码,所需地区代码的最小数是多少(假定电话号码NXX-NXX-XXXX,N取值为2~8,X取0~9)(前三位为地区代码)

解:求所需地区代码的最小数,我们考虑后七位,N有8种取值可能,一个有8*10^6种电话号码,那么最小数就是(2500*10000/(8*10^6))取上限,即为4,故至少需要4个地区代码。

把物体放入盒子问题

①不可辨别的物体与可辨别的盒子

例:10个相同的小球放入8个不同的桶中,有多少种方法?

解1:转化为18个球放入8个桶中,每个桶至少1个球。利用隔板法可以解决问题:C(17,7)

解2:理解为从具有8个元素的集合种取出组合10的方法数:C(8+10-1,10) = C(17,10)

②可辨别的物体与不可辨别的盒子 【二类斯特林数】

例:4个人安排到3个不可辨别的办公室,有多少种方法?

解:分3种情况讨论:

仅一个办公室有人:1

两个办公室有人:C(4,1)+C(4,2)/2

三个办公室有人:C(4,2)

 ①不可辨别的物体与不可辨别的盒子 【划分数】

生成排列算法

全排列生成算法 by Salmon_lee

生成组合算法

接触过很多,即用二进制模拟生成子集。暴力的常用做法。

猜你喜欢

转载自blog.csdn.net/leelitian3/article/details/81461770