文章目录

  • 排列与组合
  • 四个基本计数原理
  • 集合的排列
  • 集合的组合
  • 多重集合的排列
  • 多重集合的组合
  • 鸽巢原理

排列与组合


四个基本计数原理


组合数学(持续更新)_排列组合

加法原理: 设集合

组合数学(持续更新)_组合数学_02

被划分成两两不相交的部分

组合数学(持续更新)_算法_03

,

组合数学(持续更新)_多重集_04


组合数学(持续更新)_算法_05

, 则

组合数学(持续更新)_组合数学_02

的对象数目可以通过确定它的每一个部分的对象数目并如此相加而得到 :

组合数学(持续更新)_排列组合_07


例如: 从河北到四川可以坐火车或者坐飞机, 坐飞机有

组合数学(持续更新)_算法_08

种方法, 坐火车有

组合数学(持续更新)_鸽巢原理_09

方法, 则从河北到四川的方法有

组合数学(持续更新)_排列组合_10


组合数学(持续更新)_鸽巢原理_11

乘法原理 : 加法原理的推论

例如: 从河北到四川第一程需要坐飞机,第二程需要坐火车, 坐飞机有

组合数学(持续更新)_算法_08

种方法, 坐火车有

组合数学(持续更新)_鸽巢原理_09

方法, 则从河北到四川的方法有

组合数学(持续更新)_排列组合_14

种方法


组合数学(持续更新)_多重集_15

减法原理: 令

组合数学(持续更新)_多重集_16

是一个集合, 而

组合数学(持续更新)_排列组合_17

是包含

组合数学(持续更新)_多重集_16

组合数学(持续更新)_多重集_19


组合数学(持续更新)_多重集_16


组合数学(持续更新)_排列组合_17

中的补,那么

组合数学(持续更新)_多重集_16

中的对象数目

组合数学(持续更新)_排列组合_23

由以下法则给出

组合数学(持续更新)_多重集_24

例如: 计算

组合数学(持续更新)_多重集_25

中不能被

组合数学(持续更新)_多重集_26

组合数学(持续更新)_鸽巢原理_27

组合数学(持续更新)_组合数学_28

组合数学(持续更新)_算法_29


组合数学(持续更新)_排列组合_30

除法原理:令

组合数学(持续更新)_组合数学_02

是一个有限集合, 把它划分成

组合数学(持续更新)_排列组合_32

组合数学(持续更新)_组合数学_33

例如: 在一排鸽巢中有

组合数学(持续更新)_多重集_34

只鸽子,如果每个鸽巢含有

组合数学(持续更新)_排列组合_35

只鸽子, 那么鸽巢的数目为

组合数学(持续更新)_鸽巢原理_36


两道例题:

组合数学(持续更新)_算法_37

: 在

组合数学(持续更新)_多重集_38


组合数学(持续更新)_鸽巢原理_39

中有多少个整数恰好有一位数字是

组合数学(持续更新)_排列组合_35

解法: 通过添加前导

组合数学(持续更新)_多重集_38

(如

组合数学(持续更新)_多重集_26

看作

组合数学(持续更新)_鸽巢原理_43

,

组合数学(持续更新)_算法_44

看作

组合数学(持续更新)_多重集_45

,

组合数学(持续更新)_鸽巢原理_46

看作

组合数学(持续更新)_排列组合_47

), 可以把

组合数学(持续更新)_组合数学_02

中的每一个数都当作

组合数学(持续更新)_鸽巢原理_09

位数, 现在我们根据数字

组合数学(持续更新)_排列组合_35

是位于第

组合数学(持续更新)_排列组合_51

位从而把集合分成

组合数学(持续更新)_鸽巢原理_09

个集合, 这

组合数学(持续更新)_鸽巢原理_09

个集合中的每一个都含有

组合数学(持续更新)_排列组合_54

个整数,从而

组合数学(持续更新)_组合数学_02

所含有的整数个数等于

组合数学(持续更新)_排列组合_56

(根据这个我出了一道题,可以试着练习一下​​题目链接​​)


组合数学(持续更新)_多重集_57

: 由数字

组合数学(持续更新)_算法_58

可以构造出多少个不同的

组合数学(持续更新)_排列组合_35

解法: 实际上我们只有两种选择,

组合数学(持续更新)_算法_08

要放置在哪里(有

组合数学(持续更新)_排列组合_35

种选择),

组合数学(持续更新)_多重集_62

要放置在哪里(有

组合数学(持续更新)_鸽巢原理_09

种选择),剩下的位置自动由

组合数学(持续更新)_鸽巢原理_64

占位,所以根据乘法原理,答案是

组合数学(持续更新)_组合数学_65


集合的排列


定理

组合数学(持续更新)_多重集_66

: 对于正整数

组合数学(持续更新)_鸽巢原理_67


组合数学(持续更新)_组合数学_68

,

组合数学(持续更新)_鸽巢原理_69

, 有

组合数学(持续更新)_多重集_70


并规定

组合数学(持续更新)_多重集_71

于是可以写成

组合数学(持续更新)_组合数学_72

例题: 将

组合数学(持续更新)_组合数学_73

个字母排序, 使得元音字母

组合数学(持续更新)_组合数学_74

任意两个都不能连续出现,这种排序方法的总数是多少?

解法: 首先排序

组合数学(持续更新)_排列组合_75

个辅音字母, 总共有

组合数学(持续更新)_多重集_76

种方法, 然后将

组合数学(持续更新)_排列组合_35

个元音字母插空到

组合数学(持续更新)_多重集_78

组合数学(持续更新)_多重集_79

刚刚例题的排列叫做线性排列, 除了线性排列以外, 还有圆排列


考虑以下问题

6个孩子沿着圆圈行进,他们能以多少种不同的方式形成一个圆?

解法:

因为孩子们在行进中, 因此重要的是他们彼此间的相对位置, 因此只要其中一个排列可以通过旋转与另外一个重合,即通过一个圆周位移而得到另一个, 所以每一个循环排列对应

组合数学(持续更新)_多重集_26

例如下面的循环排列:

组合数学(持续更新)_多重集_81


来自于下面的线性排列中的每一个:

组合数学(持续更新)_鸽巢原理_82


组合数学(持续更新)_组合数学_83


组合数学(持续更新)_多重集_84


组合数学(持续更新)_排列组合_85


组合数学(持续更新)_排列组合_86


组合数学(持续更新)_算法_87

把上面每一个排列的最后一位移到第一位之前就形成前面的循环排列,于是,

组合数学(持续更新)_多重集_26

个孩子的线性排列与循环排列的对应是

组合数学(持续更新)_多重集_26


组合数学(持续更新)_鸽巢原理_64

,因此为了求循环排列数目, 我们把线性排列个数除以

组合数学(持续更新)_多重集_26

,因此

组合数学(持续更新)_多重集_26

个孩子的循环排列数目是

组合数学(持续更新)_鸽巢原理_93

定理

组合数学(持续更新)_组合数学_94

:

组合数学(持续更新)_鸽巢原理_67

元素集合的循环

组合数学(持续更新)_组合数学_68

组合数学(持续更新)_算法_97


特别地,

组合数学(持续更新)_鸽巢原理_67

元素集合的循环排列的数目是

组合数学(持续更新)_多重集_99


例题1:

组合数学(持续更新)_组合数学_100

解法1: 运用减法原理, 将

组合数学(持续更新)_算法_101


组合数学(持续更新)_组合数学_102

两个人看作一个整体

组合数学(持续更新)_算法_103

, 于是考虑

组合数学(持续更新)_组合数学_104

个人按照圆桌座位,是

组合数学(持续更新)_鸽巢原理_105

, 十个人按照圆桌座位方法总数是

组合数学(持续更新)_多重集_106

,所以答案是

组合数学(持续更新)_组合数学_107

解法2:

组合数学(持续更新)_算法_101

左右两边的座位方法有

组合数学(持续更新)_算法_109

种可能, 将这三个人看作一个整体, 于是考虑

组合数学(持续更新)_多重集_62

个人按照圆桌座位,是

组合数学(持续更新)_鸽巢原理_111

,所以答案是

组合数学(持续更新)_算法_112


例题2:

组合数学(持续更新)_多重集_113

解法:

首先很明显是循环排列, 所以项链最多数目是

组合数学(持续更新)_排列组合_114

,然后考虑项链可以翻转过来而不改变排列,所以答案是

组合数学(持续更新)_多重集_115

关于这部分的理解,例如是

组合数学(持续更新)_算法_08

个人按照圆桌座位排序是这两种

组合数学(持续更新)_算法_117


其中每个人的相对位置改变了, 所以是两种方法

但对于项链来说,可以翻转,所以本质上是一种项链

组合数学(持续更新)_多重集_118

(不知道我说清楚了没, 实在不理解可以想围着圆桌坐没法翻转过去倒立着坐)


集合的组合


定理1: 对于

组合数学(持续更新)_鸽巢原理_119

组合数学(持续更新)_排列组合_120

因此

组合数学(持续更新)_组合数学_121

例如: 在平面上给出

组合数学(持续更新)_算法_44

个点使得没有

组合数学(持续更新)_算法_08

解法:

组合数学(持续更新)_组合数学_124


定理2: (帕斯卡公式) 对于所有满足

组合数学(持续更新)_组合数学_125

的整数

组合数学(持续更新)_鸽巢原理_67


组合数学(持续更新)_排列组合_32

组合数学(持续更新)_组合数学_128

可以从以下角度理解:


组合数学(持续更新)_鸽巢原理_67

个苹果中选出

组合数学(持续更新)_排列组合_32

个苹果, 对于第

组合数学(持续更新)_鸽巢原理_64

如果选择了, 则是从剩下

组合数学(持续更新)_算法_132

个苹果中选出

组合数学(持续更新)_排列组合_133

个苹果,即

组合数学(持续更新)_鸽巢原理_134

如果不选 ,则是从剩下

组合数学(持续更新)_算法_132

个苹果中选出

组合数学(持续更新)_排列组合_32

个苹果,即

组合数学(持续更新)_排列组合_137


定理3: 对于

组合数学(持续更新)_组合数学_138

, 有

组合数学(持续更新)_鸽巢原理_139


多重集合的排列


定理1:


组合数学(持续更新)_组合数学_02

是有

组合数学(持续更新)_排列组合_32

种不同类型对象的多重集合, 每一个元素都有无线重复数,那么

组合数学(持续更新)_组合数学_02


组合数学(持续更新)_组合数学_68

排列是

组合数学(持续更新)_组合数学_144

例如:

组合数学(持续更新)_排列组合_51

可以构成多少个四位数,答案显然是

组合数学(持续更新)_排列组合_146


定理2:

组合数学(持续更新)_组合数学_02

是多重集合, 它有

组合数学(持续更新)_排列组合_32

种不同类型的对象, 且每一种类型的有限重复数分别是

组合数学(持续更新)_算法_149

,且

组合数学(持续更新)_组合数学_02

的大小为

组合数学(持续更新)_组合数学_151

, 则

组合数学(持续更新)_组合数学_02

组合数学(持续更新)_鸽巢原理_153

例题: 词MISSISSIPPI中字母的排列数是

组合数学(持续更新)_算法_154

因为这个数字等于多重集合

组合数学(持续更新)_组合数学_155


对于定理

组合数学(持续更新)_排列组合_156

还有另外一种理解方式:

把一个对象集合划分成指定大小的各个部分, 其中这些部分都有指定给他们的标签, 为了方便理解,给出以下例子

例子: 考虑有

组合数学(持续更新)_鸽巢原理_09

个对象的集合

组合数学(持续更新)_多重集_158

, 把它划分成两个子集, 每一个大小为

组合数学(持续更新)_排列组合_156

如果没有标签, 那么有三种划分方式:

组合数学(持续更新)_组合数学_160

;

组合数学(持续更新)_多重集_161


组合数学(持续更新)_组合数学_162

;

组合数学(持续更新)_算法_163


组合数学(持续更新)_多重集_164

;

组合数学(持续更新)_鸽巢原理_165

现在假设给这些部分做上不同的标签, (例如, 红色和蓝色), 则有

组合数学(持续更新)_多重集_26

种划分,例如对于

组合数学(持续更新)_组合数学_160

,

组合数学(持续更新)_多重集_161


红色

组合数学(持续更新)_组合数学_160

蓝色

组合数学(持续更新)_多重集_161


蓝色

组合数学(持续更新)_组合数学_160

红色

组合数学(持续更新)_多重集_161

在一般情况下, 我们可以用

组合数学(持续更新)_鸽巢原理_173


定理3:

组合数学(持续更新)_鸽巢原理_67

是正整数, 并设

组合数学(持续更新)_组合数学_175


组合数学(持续更新)_鸽巢原理_176

, 把

组合数学(持续更新)_鸽巢原理_67

对象集合划分成

组合数学(持续更新)_排列组合_32

个标有标签的盒子, 且第

组合数学(持续更新)_鸽巢原理_64

个盒子有

组合数学(持续更新)_排列组合_180

个对象, 第

组合数学(持续更新)_排列组合_156

个盒子有

组合数学(持续更新)_算法_182

个对象,

组合数学(持续更新)_算法_183

, 第

组合数学(持续更新)_排列组合_32

个盒子有

组合数学(持续更新)_排列组合_32

组合数学(持续更新)_鸽巢原理_153

如果这些盒子没有标签,且

组合数学(持续更新)_多重集_187

,那么划分为

组合数学(持续更新)_排列组合_188

这是因为, 对于把这些对象分配到

组合数学(持续更新)_排列组合_32

个没有标签的盒子的每一种方法, 都有

组合数学(持续更新)_组合数学_190

组合数学(持续更新)_排列组合_188


如果不好理解, 可以从以下方面考虑

对于定理

组合数学(持续更新)_排列组合_156

是有

组合数学(持续更新)_排列组合_32

种元素,每一种有

组合数学(持续更新)_算法_194

个,则每一种元素要占位

组合数学(持续更新)_算法_194


而定理

组合数学(持续更新)_算法_08

是 将

组合数学(持续更新)_多重集_197

个元素, 装在

组合数学(持续更新)_排列组合_32

个不同的盒子里 (染成

组合数学(持续更新)_排列组合_32

种颜色), 每一个盒子分别要装

组合数学(持续更新)_算法_194

个元素, 也可以看作是有

组合数学(持续更新)_排列组合_32

种元素,每一种有

组合数学(持续更新)_算法_194

如果还不是很清楚的话,我们可以回看这个例子:

考虑有

组合数学(持续更新)_鸽巢原理_09

个对象的集合

组合数学(持续更新)_多重集_158

, 把它划分成两个子集, 每一个大小为

组合数学(持续更新)_排列组合_156

, 且标记为两种颜色 (红色和蓝色)

也可以看作是

组合数学(持续更新)_鸽巢原理_09

个元素分成

组合数学(持续更新)_排列组合_156

种 , 每一种都有

组合数学(持续更新)_排列组合_156

可以细细体会一下


例子: 有多少种方法在

组合数学(持续更新)_多重集_209

的棋盘上放置

组合数学(持续更新)_多重集_62

解法: 因为两辆车不同位于同一行和同一列 , 所以我们可以一列一列的摆放车, 第

组合数学(持续更新)_鸽巢原理_64

列的车有

组合数学(持续更新)_多重集_62

行可以放置 , 第

组合数学(持续更新)_排列组合_156

列的车不能和上一列的车摆在同一行 , 有

组合数学(持续更新)_多重集_214

行可以放置 , 之后同理, 所以很明显有

组合数学(持续更新)_组合数学_215


在上面讨论中, 我们默认每辆车之间没有区别, 现在我们考虑

组合数学(持续更新)_多重集_216

, 在决定哪

组合数学(持续更新)_多重集_62

个方格要被这些车占据后 (

组合数学(持续更新)_组合数学_215

种可能), 我们现在还要决定在每个占据的方格上的车是么颜色的, 很明显也有

组合数学(持续更新)_组合数学_215

种可能,于是,在

组合数学(持续更新)_多重集_209

棋盘上具有

组合数学(持续更新)_多重集_62

种不同颜色的

组合数学(持续更新)_多重集_62

个非攻击型的车的放置方法数为

组合数学(持续更新)_多重集_223


现在假设不是有

组合数学(持续更新)_多重集_62

个不同颜色的车, 而是有

组合数学(持续更新)_鸽巢原理_64

个红车 (

组合数学(持续更新)_多重集_226

) ,

组合数学(持续更新)_算法_08

个蓝车 (

组合数学(持续更新)_多重集_228

) 和

组合数学(持续更新)_鸽巢原理_09

个黄车 (

组合数学(持续更新)_多重集_230

), 同时还假设同颜色的车之间没有区别, 现在, 我们看到一个多重集合

组合数学(持续更新)_多重集_231

根据定理

组合数学(持续更新)_排列组合_156

这个多重集合的排列个数等于

组合数学(持续更新)_鸽巢原理_233

因此,在

组合数学(持续更新)_多重集_209

棋盘上放置

组合数学(持续更新)_鸽巢原理_64

个红车 ,

组合数学(持续更新)_算法_08

个蓝车和

组合数学(持续更新)_鸽巢原理_09

组合数学(持续更新)_算法_238


多重集合的组合


定理1:


组合数学(持续更新)_组合数学_02

是有

组合数学(持续更新)_排列组合_32

种不同类型对象的多重集合, 每一个元素都有无线重复数,那么

组合数学(持续更新)_组合数学_02


组合数学(持续更新)_组合数学_68

组合的个数等于

组合数学(持续更新)_组合数学_243


例子

组合数学(持续更新)_多重集_66

: 一家面包店有

组合数学(持续更新)_多重集_62

题解: 因为盒中面包圈顺序与购买者的要求无关, 因此是一个组合问题, 这个数等于

组合数学(持续更新)_鸽巢原理_246


例子

组合数学(持续更新)_组合数学_94

: 取自

组合数学(持续更新)_排列组合_248

的长度为

组合数学(持续更新)_组合数学_68

解法: 排序后是非递增实际上就是

组合数学(持续更新)_组合数学_02


组合数学(持续更新)_组合数学_68


例子

组合数学(持续更新)_多重集_252

: (推广一点点)

下面的方程的整数解的个数是多少?

组合数学(持续更新)_组合数学_253

其中

组合数学(持续更新)_算法_254

,

组合数学(持续更新)_鸽巢原理_255

,

组合数学(持续更新)_多重集_256

,

组合数学(持续更新)_算法_257

我们引入新变量:

组合数学(持续更新)_排列组合_258

,

组合数学(持续更新)_多重集_259

,

组合数学(持续更新)_组合数学_260

,

组合数学(持续更新)_鸽巢原理_261

此时方程变为

组合数学(持续更新)_组合数学_262

于是答案为

组合数学(持续更新)_鸽巢原理_263


鸽巢原理