(1)基础知识

本博客参考自MOOC平台的离散数学及其应用课程与离散数学及其应用第七版内容。

1 集合与序列

1.1 集合的定义

集合: 是由指定范围内的满足给定条件的所有可确定,可分辨对象聚集在一起构成的无序整体,每一个对象称为这个集合的元素。集合常用大写英文字母表示,而元素用小写英文字母表示。
更精确的定义需要以下公理完善:外延公理 + 空集存在公理 + 无序对公理 + 并集公理 + 幂集公理 + 无穷公理 +替换公理 + 正则公理 + 选择公理。 (ZFC 公理化集合论)
更详细的介绍参见:http://www.duodaa.com/blog/index.php/archives/397/
集合与对象的关系可以如下表述:

下面举几个例子:

image.png

标注红字的部分无法作为精准描述集合元素性质的语句,所以不构成集合。
image.png

集合的描述形式:
image.png

image.png

image.png

image.png

image.png

image.png

image.png

1.2 集合的运算

image.png

image.png

image.png

值得注意的是这两个特殊的定义:


交换律:

结合律:

分配率:

吸收率:

德摩根定律:
\overline{A\cup B}=\overline{A}\cap \overline{B} ;\overline{A\cap B}=\overline{A}\cup \overline{B};\\ 推广:\overline{\bigcap_{i\geq 1}^{n}a_{i}}=\bigcup_{i\geq 1}^{n}\overline{a_{i}};\overline{\bigcup_{i\geq 1}^{n}a_{i}}=\bigcap_{i\geq 1}^{n}\overline{a_{i}}
德摩根定律的变形:

幂等律:

零律:

同一律:

排中律:

矛盾律:

余补律:

双重否定率:

1.3 序列

image.png

image.png

image.png

image.png

image.png

2 数论基础

2.1整除的概念

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

2.2 欧几里得算法(辗转相除法)和贝祖等式

image.png

image.png

image.png

image.png

贝祖等式的一个重要推论:
大于1的两个整数a,b互素,则存在整数使得
最大公因子和最小公倍数还有如下性质:
对正整数a,b,c有
1.GCD(a,GCD(b,c))=GCD(GCD(a,b),c)
2.LCM(a,LCM(b,c))=LCM(LCM(a,b),c)
3.GCD(a,LCM(b,c))=LCM(GCD(a,b),GCD(a,c))
4.LCM(a,GCD(b,c))=GCD(LCM(a,b),LCM(a,c))
image.png

image.png

3.计数基础

3.1 加法与乘法规则

image.png

image.png

image.png

image.png

image.png
image.png

image.png

image.png

image.png

3.2 排列

排列的分类


image.png

可重排列


image.png

image.png

不可重排列
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

如果我们对一类对象作出可重复但有次数的限制,比如:


image.png

image.png

3.3 组合

image.png

image.png

image.png

image.png

image.png

image.png
image.png

image.png

image.png

image.png

image.png

image.png

同样的我们对组合的对象作出可重复但有次数的限制:


image.png

为了能够更清楚的理解,这里有必要系统的引入隔板法的概念

3.4 隔板法(补充)

定义:当遇到把n个元素无次序分为k组的情况时,可以通过隔板法去理解。
隔板法就是在n个元素间的(n-1)个空位中插入k-1个板,从而可以把n个元素分成k组的方法。 
应用普通隔板法必须满足3个条件:   
(1) 这n个元素必须全部相同;
(2) 所分成的每一组至少分得1个元素;
(3) 分成的组别彼此相异。
基础公式:
把10个相同的小球放入3个不同的箱子,每个箱子至少一个,问有几种情况?
相当于n-1个空位,需要插入m-1个板子(注意,一个空位最多只能插入一个板子),此时就是n-1选m-1,即C(n-1,m-1)=C(9,2)
接下来才是重点。

普通隔板法

例1. 求方程 x+y+z=10的正整数解的个数。

分析:可以理解为将10个球排成一排,球与球之间形成9个空隙,将两个隔板插入这些空隙中(每空至多插一块隔板),规定由隔板分成的左、中、右三部分的球数分别为x、y、z之值(如下图)。则隔法与解的个数之间建立了一一对立关系,故解的个数为C(n-1,m-1)=C(9,2)=36(个)。

添元素隔板法

例2. 求方程 x+y+z=10的非负整数解的个数。

分析:注意到x、y、z可以为零,故例1解法中的限定“每空至多插一块隔板”就不成立了,怎么办呢?只要添加三个球,给x、y、z各添加一个球,这样原问题就转化为求 x+y+z=13的正整数解的个数了(也就是说这两个结果是一个双射),则问题就等价于把13个相同小球放入3个不同箱子,每个箱子至少一个,有几种情况?易得解的个数为C(n+m-1,m-1)=C(12,2)=66(个)。

例3: 把10个相同小球放入3个不同箱子,第一个箱子至少1个,第二个箱子至少3个,第三个箱子可以放空球,有几种情况?
我们可以在第二个箱子先放入10个小球中的2个,(这步不影响第一个和第二个的数量)然后把问题转化为 把9个相同小球放3不同箱子,每箱至少1个,放完后,把第三个箱子中的一个球放到第二个箱子里(这步影响第三个箱子的数量,但是两个结果是一个双射)。即 C(8,2)=28

例4. 将20个相同的小球放入编号分别为1,2,3,4的四个盒子中,要求每个盒子中的球数不少于它的编号数,求放法总数。(减少球数用隔板法)

分析:先在编号1,2,3,4的四个盒子内分别放0,1,2,3个球,只有1种方法,剩下14个球;再把剩下的球分成4组,每组至少1个,由例1知方法有C(13,3)=286(种)。

例5:有一类自然数,从第三个数字开始,每个数字都恰好是它前面两个数字之和,直至不能再写为止,如257,1459等等,这类数共有几个?
因为前2位数字唯一对应了符合要求的一个数,只要求出前2位有几种情况即可,设前两位为ab
显然a+b<=9 ,且a不为0
1 -1- 1 -1 -1 -1 -1 -1 -1 1代表9个1,-代表8个空位
我们要把9个1分成两组,但b可以为0,我们先给b一个1,然后就相当于10个小球放入两个(a,b)不同的箱子,每一个箱子至少放一个,C(9,1),但这是错误的,为什么?因为1不一定要全部放入。其实解决这个问题可以这么想,我们在引进一个盒子c来放ab取完剩下的1,所以报证c中球数大于0,所以要在增加一个球,题目就等价于,11个小球放入三个(a,b,c)不同的箱子,每一个箱子至少放一个,所以一共有 c(10,2)=45 .

选板法

例6: 有10粒糖,如果每天至少吃一粒(多不限),吃完为止,求有多少种不同吃法?
o - o - o - o - o - o - o - o - o – o o代表10个糖,-代表9块板
10块糖,9个空,插入9块板,每个板都可以选择放或是不放,相邻两个板间的糖一天吃掉
这样一共就是 啦

分类插板法

例7: 小梅有15块糖,如果每天至少吃3块,吃完为止,那么共有多少种不同的吃法?
此问题不能用插板法的原因在于没有规定一定要吃几天,因此我们需要对吃的天数进行分类讨论
最多吃5天,最少吃1天
1: 吃1天或是5天,各一种吃法 一共2种情况
2:吃2天,每天预先吃2块,即问11块糖,每天至少吃1块,吃2天,几种情况? C(10, 1)=10
3:吃3天,每天预先吃2块,即问9块糖,每天至少1块,吃3天? C(8 ,2)=28
4:吃4天,每天预先吃2块,即问7块糖,每天至少1块,吃4天?c(6 ,3)=20
所以一共是 2+10+28+20=60 种

逐步插板法

例8 :在一张节目单中原有6个节目,若保持这些节目相对次序不变,再添加3个节目,共有几种情况?
-o - o - o - o - o - o - 三个节目abc
可以用一个节目去插7个空位,再用第二个节目去插8个空位,用第三个节目去插9个空位
所以一共是 c(7, 1)×c(8, 1)×c(9 ,1)=504种

两道附加题

1.一共n个元素,从中选取m个元素,选出的元素中没有相邻的元素,一共有多少种选法(ZOJ3557)
解答:首先我们拿出m个小球,还剩下n-m个小球,可以产生n−m+1个空,这道题就变成了把m个小球插到这n−m+1个空中有多少种方法,即这m个小球的编号取决于它插入的位置,和选哪个小球没关系,即C为(n-m+1,m)
在计算阶段要用到卢卡斯定理,这部分在OI中的数论方法里有讲。
2.2.hdu 3037 Saving Beans
有n个不同的盒子,在每个盒子中放一些球(可以不放),使得总球数≤m,求方案数

第一种方法:

设最后放了k个球,根据"隔板法"由方案数C(k+n-1,n-1),:
ans=C(n-1,n-1)+C(n,n-1)+C(n+1,n-1)+……+C(n+m-2,n-1)+C(n+m-1,n-1)
=C(n+m,n);

第二种方法:

这个题和原来不一样的地方:总球数≤m,一般我们就是总球数就是m,所以我们可以增加一个盒子,现在n+1个盒子,现在假设就要放m个球,n来来放k个球,剩下的m-k就放在那个我们增加的盒子里,这样n个盒子的组合球数就是我们要求的,所以题目等价于m个球放入n+1个盒子中,盒子有里球数可以为0,添元素插板法,每一个盒子都增加一个球,即m+n+1个球放入n+1个盒子,c(m+n,n)为答案。

你可能感兴趣的:((1)基础知识)