当前课程知识点:组合数学 > 漫谈组合数学 > 什么是组合数学 > 什么是组合数学
大家好 我是清华大学计算机系的马昱春老师
很高兴能在这里结识大家
并且和大家一起去感受组合数学的美丽
组合数学是清华大学计算机系开设的
一门研究生基础理论课
可能有同学就会问了
我们从小到大学了那么多门数学课
怎么到了研究生阶段还要学一门数学课呢
而且很多同学可能没有听说过什么是组合数学
既然我们想要了解组合数学是什么
我们不妨上网去查一查
我们可以在维基百科上查到组合数学这个词条
在维基百科上的定义是这样的
组合数学也就称为组合论
想当然它自然是一门数学的分支
它是研究离散数学中排列组合的问题
尤其研究计数的方法
所以可以看到组合数学主要就是用来计数的
它研究什么呢
它研究离散数学中的排列组合
可能有的同学就会说了
我本科阶段学过离散数学
那是不是组合数学内容都已经学过了呢
我们可以拿一本经典的教材来看一下
在这本经典的离散数学教材中
我们可以看一下
它包含什么内容呢
我们翻开它的目录
可以看到其中洋洋洒洒的一共有十章内容
那么在它的第八章中
我们可以看到它的内容是组合分析的初步
其中包含了一些简单的计数法则
以及有关排列组合的初等概念
可以说在离散数学中
我们只会涉及到组合数学的一些初浅的内容
那么在这门课中
我们会深入到组合计数中去研究很多相关的内容
其中包括我们所熟知的排列和组合
并且我们会着重强调介绍一下
在计算机中很有用的一个递推关系的计数方法
我们还要介绍有关容斥原理和鸽巢原理
最后我们给大家介绍一个非常有趣的内容
我们会计算多面体的计数
会用到了Burnside引理和Polya定理
所以可以看到组合数学实际上
是深入地研究离散对象的计数方法
下面呢
我们想回顾一下数学的发展史
我们先看这样一幅图
看到这幅图以后
大家可以看到这是一个
印加帝国远古时期人们所使用的计数工具
可以说数学就是起源于计数
那么在有了计数的初等概念之后呢
我们把它发展成了算术
初等代数 几何学等等
直到到了17世纪出现了变量
数学开始了一番新的天地
我们研究高等数学线性代数
概率学等等
这些都被统称为分析数学
而我们从此也结识了
莱布尼茨 欧拉 高斯等等大家
之后呢我们会发现仅仅只有分析数学是不够的
我们在分析数学的基础上
又发展了出来拓扑学 抽象代数 群论
集合论 数论等等
这成为了我们现代数学的基础
而随着计算机的发展
人们逐渐发现组合数学成为了
现代数学中一个非常重要的分支
它直接决定了我们信息学相关的有关理论的发展
回顾这样一个数学发史
我们会发现整个数学的发展
就好比我们自己的数学教育历史
就象我们从小到大这样学数学的历程是一样的
我们在很小的时候
我们就从1 2 3 4开始进行计数
到了高中的时候
我们学了算术 学习代数和几何学
真正到了大学
我们真正开始学习分析数学
我们来研究高等数学
来研究线性代数
那么真正现代数学呢
我们需要的是一些分门别类的特别方法
比如我们会学图论 拓扑学
那和计算机相关的组合数学
作为计算机行业内的一个传统知识
我们实际上在研究生阶段深入学习之后
才能会算法有更深刻的了解
正如著名的组合数学家Brualdi这样说
组合数学到底研究什么呢
它就是研究具有一定规则的事物
那么我们就会想
这样的规则下
它到底是否存在
它到底有多少种
同时它是否能变得更好
所以在组合数学中我们就要研究三大问题
第一个问题存在性
第二个计数性
第三优化性
既然我们已经了解了什么是组合数学
那么下节课我们就想深入地去探讨一下
组合数学的渊源
-什么是组合数学
--什么是组合数学
--讨论题
-最精巧的排列——幻方
--幻方
-漫谈组合数学--最精巧的排列——幻方
-苦难的羊皮纸卷
--羊皮纸卷
-苦难的羊皮纸卷--作业
-你的手机密码安全吗
-漫谈组合数学--你的手机密码安全吗
-暴力枚举和抽象转换
--世界杯引出的问题
--世界杯引出的问题--练习
--一一对应
--七桥问题
--小结
--讨论题
-大家谈组合数学(1)
--采访武永卫老师
-第一周作业
--作业说明
--H
--U
--G
--作业讨论区说明
-第一周演示程序
--程序讨论区说明
--幻方生成器
--换方计数
--屏幕解锁方案数
--欧拉路计数
--共享程序
-加减乘除来计数
--计数的基本法则
-排列还是组合
--排列还是组合
--小乒乓球的组合之旅--排列还是组合
-各种各样的排列
--圆排列和项链排列
--圆排列和项链排列--习题
--多重排列
--多重排列--练习
-多样的组合
--可重组合
--不相邻组合
--小乒乓球的组合之旅--多样的组合
-钟声里的全排列
--钟声里的全排列
--钟声里的全排列
--字典序法
--SJT算法
-第二周作业
--H
--U
--G
--思考题
--公式测试
--作业讨论区说明
-第二周演示程序
--程序讨论区说明
--全排列生成
--组合生成器
--共享程序
-参考资料:Stirling估计式
-母函数是函数的母亲吗
--母函数的定义(1)--练习
--母函数的定义(2)--练习
-母函数的简单应用
--初识母函数--母函数的简单应用
-整数拆分
--整数拆分(1)
--整数拆分(2)
-Ferrers图像
--Ferrers图像--作业
-母函数与递推关系
--母函数能做什么
--偶数个5怎样算
--母函数小结
-大家谈组合数学(2)
-第三周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第三周演示程序
--程序讨论区说明
--整数拆分
--汉诺塔
--共享程序说明
-Fibonacci数列
--线性常系数递推关系--Fibonacci数列
-Fibonacci数列的应用
--桌布魔术
--桌布魔术--练习
--艾略特波浪曲线
-线性常系数齐次递推关系
--定义
--特征多项式
--线性常系数递推关系--线性常系数齐次递推关系
-说“数”解题
-第四周作业
--H
--U
--G
--GT思考题
--作业讨论区说明
-第四周演示程序
--程序讨论区说明
--程序共享说明
-爆笑花絮
--爆笑花絮
-参考资料:K线分析中的Fibonacci 相关理论
-Catalan数
--计算机界的精灵
--神奇的序列--Catalan数
-指数型母函数
--指数型母函数
--神奇的序列--指数型母函数
-错排
--错排1
--错排2
--神奇的序列--错排
-Stirling数
--神奇的序列--Stirling数
-母函数小结
--母函数小结
-大家谈组合数学(3)
-第五周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第五周演示程序
--讨论区说明
--Catalan数
--程序共享
-且容且斥
--容斥原理
--容斥原理的证明
--容斥原理和鸽巢原理--且容且斥
-容斥原理的精妙
-回忆过去,容斥新解
--容斥原理和鸽巢原理--回忆过去,容斥新解
-鸽子抢巢
--鸽巢原理
--鸽巢原理--练习
--鸽巢原理的应用(1)--练习
-看得见摸得着的鸽巢
--韩信点兵
--中国剩余定理
--容斥原理和鸽巢原理--看得见摸得着的鸽巢
-6人行和Ramsey数
--6人行
--Ramsey数
--小结
-第六周作业
--H
--U
--G
--GT
--作业讨论区说明
-第六周演示程序
--讨论区说明
--程序共享说明
-可以转的世界
--可以转的世界
--可以转的世界--练习
--伽罗华与群
--群的定义
--群的定义--练习
--群的一些概念
-置换群
--置换群
--群--置换群
--共轭类
--对换
--对换--练习
--置换群的应用
-Burnside引理
--着色问题的等价类
--Burnside引理--作业
-闲话群
-第七周作业
--H
--U
--G
--作业讨论区说明
-Burnside引理的困境
-从Burnside到Polya
--Polya定理
-立方体旋转
--立方体旋转(1)
--立方体旋转(2)
--立方体旋转--作业
--立方体旋转(3)
--立方体旋转--作业
--立方体旋转(4)
-母函数型Polya定理
--Polya定理--母函数型Polya定理
-图的计数
--图的计数
-总结
--本章小结
-第八周作业
--H
--U
--G
--GT
--作业讨论区说明
-大家谈组合数学(4)
--采访黄连生老师
-组合之美
--组合之美之计数
-组合之美之线性常系数递推关系
-组合之美之多样的序列
-组合之美之鸽巢原理
-组合之美之转动群与染色
-采访邹欣
--采访邹欣1
--采访邹欣2
-知识点串串烧
--知识点串串烧
-期末测验--期末测验