近三十年来,“组合数学”已成为发展最为迅速的数学分支,这与计算机科学的发展是密切相关的。组合数学是“算法复杂性分析”这门新学科的理论基础。
组合数学的基本理论并不复杂,讨论的问题甚至可追溯到好几百年前,主要是对有限对象的计数。利用简单的原理来解决复杂多变的实际问题不是件简单的事情,初学者往往感到十分棘手。作者从事这门课程教学多年,根据经验及掌握的资料编写了本书。
作者有这样的体会,一道看似难于通过组合数学解决的问题,其实在于当事人还没找到解题的窍门。一旦找到,问题便可迎刃而解;而且饶有趣味,甚至有一种美的感觉。作者常被问道解决类似问题有什么诀窍?作者认为既然对象是有限个,不妨取一个规模比较小的问题模拟“沙盘推演”,找出规律性的东西,再推及一般。建议读者试一试上述方法。
组合数学是既古老而又年轻的一门数学分支,它的基本原理非常直观易懂。本书收集了1200多道组合数学题,涉及4部分内容:一是加法法则、乘法法则与排列组合;二是序列、递推关系与母函数、Fibonacci数等;三是容斥原理、鸽巢原理、Ramsey数等;四是Polya定理。
本书适合作为高等院校计算机及相关专业本科生的辅助教材,也可作为研究生的辅助教材,也可供广大科学工作者、工程技术人员参考。
最后说明一下本书只涉及组合数学的部分核心内容,比如图论部分暂时放弃了。图论无疑属于组合数学,但因为它成长壮大,本身内容丰富,所以独立出去了,以后争取继续完成。
第Ⅰ部分 加法规则、乘法规则与排列组合
第Ⅱ部分 序列、递推关系与母函数、Fibonacci数、Catalan数
第Ⅲ部分 容斥原理、鸽巢原理与Ramsey数、Stirling数
第Ⅳ部分 Polya定理
参考文献