计算机的运行需要编程来控制,然而编程的基础往往是求解问题的组合学算法。“组合数学”主要研究离散对象的安排或配置方案的存在性、计数、枚举构造和优化问题等。
组合方法的实质就在于寻找一一对应,而对应的方法可以借助不同的工具,从而形成与其它学科的交叉。对组合问题来说,工具的选取是很重要的。当用计算机解决某个问题且有多种算法可供选择时,就要考虑算法的复杂度问题。衡量时间复杂度的一个重要指标就是算法的运算次数,即求出在最坏情况下的运算次数或按概率分布的平均运算次数。而衡量空间复杂度的主要指标就是所占用的存储空间大小。为此,就要用到“组合数学”的方法和技巧。因此,国内外不少高校都把“组合数学”作为计算机学科各专业的一门基础理论课程。
“组合数学”不仅在计算机、人工智能、过程控制和空间技术等新兴学科技术中有着重要的应用,而且在一些看似与数学关系不大的社会科学中也得到越来越广的应用。
本课程是计算机类的专业基础课,其内容在数据库、程序设计、算法设计与分析、复杂度理论、人工智能、模式识别等课程和领域里都有不同程度的应用,是从事计算机科学研究必须掌握的基本知识,对提高学生的素质具有重要意义。通过学习,了解本课程的研究内容和求解问题的一般方法、特殊方法和技巧,以及在本专业中的地位。掌握用排列组合的基本方法以及用母函数、递推关系、容斥原理、棋盘布局和波利亚(Pólya)定理等理论方法和技巧解决实际工作中的组合计数及其应用问题;了解排列组合的生成算法;了解正整数的分拆及其应用;基本掌握一些简单问题的存在性的证明方法和技巧。
“高等数学”:函数的展开和无穷级数求和
“初等数学”和“线性代数”:高次代数方程和线性代数方程组的求解
“代数系统”:群论
完成课程学习且总成绩不低于60可获合格证书(需付费申请)
教材:《组合数学》姜建国、岳建国著 西安电子科技大学出版社 2003
参考书目:《组合数学》曹汝成编著 华南理工大学出版社 2000
参考书目:《组合数学教程》王天民编 机械工业出版社 1993.10
参考书目:《组合数学》李寰宇编著 北京师范学院出版社 1988