作为一种自然学科,数学是其他学科发展的基础学科,其研究范围包括两个方面:①对连续对象,如方程;②离散对象,如组合数学。尽管组合数学是数学的一个重要分支,但组合数学目前仍属于一种边缘性的学科,其兴起是以电子计算机的发展为基础的。就全球软件市场而言,美国处于绝对的垄断地位,全球最先进、计算速度最快的电脑芯片均产自美国,最具权威性的电子计算机专家也多以组合数学家出身为主。在美国大学的课程中,计算机学科任课教师均是美国一流的电子计算机教师。美国一些大型计算机公司,如IBM都有属于自己的组合数学研究团队,由此可见组合数学在当今全球经济发展中的重要地位。
1组合数学概述
目前在数学界,关于组合数学的概念并没有统一的定论,是有一点是可以肯定的,那就是组合数学是数学的一个分支,以离散事物为主要研究对象,离散数学的发展有赖于电子计算机的发展,是电子计算机发展的基础学科。与传统其他数学分支不同,组合数学的研究对象为一些分散的事物,这些分散事物之间的数学关系是组合数学需要探讨的问题,如事物的存在性、构造性、最佳组合性等,如事物之间的排列关系、函数关系等[1~2]。另外,组合数学研究的内容也包括离散构型,只要是研究对象符合一定的组合形态,符合一定的计数原则及构造,均可以用组合数学进行分析,如象构形的存在,构形的计数等。历史一些比较著名的数学问题的提出和解答都是以组合数学为基础来进行的[3]。
(1)四色猜想
该问题是这样的:要求给世界地图上色,不同的颜色代表不同的国家。在进行上色的过程中,只能用四种颜色,如何实现相邻的国家使用不同的颜色?该问题一经提出,立刻引起世界数学家的注意,一个多世纪以来,数学家们绞尽脑汁进行研究证明,试图获得研究结果。在实际的证明过程中,由于研究对象复杂,无法实现数学建模,因此人工无法实现证明,唯一的选择就是借助电子计算机。在探索过程中,开始形成一些新的计算机理论,实现了对图论的丰富和发展。目前这一问题仍在探索之中,仍有无数的数学爱好者在进行不断的探索证明。
(2)船夫过河
这是一道趣味数学问题,船夫要过河,随身携带的物品为白菜、一只羊和一条狼,过河的要求是不能出现“狼吃羊”和“羊吃白菜”的情况,且船夫每次过河只能携带一种物品,如何安排过河顺序才能实现上述要求?这个问题只有以现行规划才能解决,需要借助组合数学的相关知识进行证明。另外,还有一些著名的数学问题的解答证明都需要运用到组合数学的知识,如汉诺问题。下面将探索组合数学在软件工程中的具体应用。
2组合数学在软件工程中的具体应用
由于数学学科是电子计算机发展的基本学科,因此在软件工程的教学课程中,组合数学是其中的必备课程,也是最难的课程之一。具有良好数学基础的人,如果熟悉计算机的程序语言,就可以充分理解程序的算法,并可以写出时间维度和空间维度相对复杂的算法。纵观全球,一些计算机天才均具有良好的数学基础。互联网技术的发展使得电子计算机开始深入到人们的日常生活,影响范围不断扩大。现在有一种观点认为电子计算机就是算法的集合体,这种观点具有一定的道理,美国之所以能垄断全球软件市场,最主要的原因就是美国注重基础数学的发展,注重组合数学的发展。
2.1在密码学中的应用
随着组合数学的应用,密码领域开始出现新的变革,开始改变传统RAS体制,这种新变革以幂剩余函数为和,对毕达哥斯进行加密和解密的变化,改变了传统RAS体制不能被直接破译的现状。用组合函数进行论证表明,这种最新密码体制以最大质子因素的合数的因子分解为基础,安全性较高,远远高于传统的RAS机制的密码机制。
2.2在天气预报中的应用
组合数学是数学的一个分支,以集合论和图论为基础,应用范围十分广泛,几乎涉及到各个领域,如信息工程、系统工程、通信工程、人工智能等领域。随着电子计算机技术的发展,组合数学运算任务愈加繁重,但是这些计算很大一部分都可以通过计算机完成,反过来也促进了电子计算机的发展。组合数学中有一种链格求交的算法,其在大气降水分区分级的预测中应用范围不断扩展,为组合数学在天气预报中的应用开辟新的路径,表明其具有一定的可行性。
2.3在不定方程中的应用
组合数学在不定方程中的应用的最明显的例子就是上文提到的四色猜想,该问题的结果可以简单明了地说明,但是并没有人在理论上对这个问题进行人力证明。20世纪70年代,美国两位数学家证明了该问题的计算机证明结果,证明逻辑高达100亿条,证明时长1200h。第二个例子就是最著名的“百元钱买白只小鸡”,该问题设置如下:公鸡是五元钱一只,母鸡是五元钱一只,小鸡则是三只共一元,如何用一百元买100只鸡?对此问题通常做如下解答:设:M=公鸡数量,W=母鸡数量,L=小鸡数量,则可求得方程式如下:
5×M+3×W+L/3=100
M+W+L=100此不定式方程具有多种组解,也可以实现对所有组解的列举。但如果将钱数增加,鸡的数量增加,则其计算量相当繁重,因此必须借助电子计算机,先进行BASIC语言编程:
20FORM=1TO100
30FORW=1TO100
40LETL=100-M-W
50IF5×M+3×W+L/3=100THEN
70
60GOTO70
70print"cocks:"M;"Hens:";W;"chicks:";L80NEXTM
80NEXTM
90End实践证明此程序在电子计算机中可以正常运行,如果需要计算其他问题,只需要改变一下程序代码就可以实现。
3结论
相关研究表明,组合数学发源于东方文明,东方人将复杂的概念和对象看成是简单的概念和对象的有机组合。但是对于这些东方数学的研究,需要进行深入的研究之后才能得出具体的结论,并将其应用到数学学科中。由于组合理论经常和其他一些看似无关的对象联系在一起,如幻方,这些问题推动了数学家对组合理论的思考和研究,最终使得以组合理论为基础的纯粹数学、应用数学成为数学学科的重要分支[4~5]。现代生活中充满着各种各样的离散构型,现代科研中也存在各种各样的离散构型,这种情况就决定着组合数学具有丰富的内涵。另外,组合数学追求算法的技巧,这也是组合数学的另一个显著特点。组合数学问题能有有效解决取决于能否找到一种完整、精确的算法,这也是组合数学的根本魅力所在。随着电子计算机的发展,组合数学的应用范围和应用深度不断拓展,组合数学的理论研究也取得了突破性发展,反过来,组合数学又促进了电子计算机的快速发展,两者之间形成一种良性活动。随着科学技术的发展,组合数学的基本理论仍会不断向前发展,其理论也必将会得到人们的广泛关注,其应用前景比较广泛。因此应当重视组合数学在软件工程中的应用,注重软件工程的开发和利用,不断提高我国的科学技术水平,提高其对我国经济的服务能力。另外,还应该注重软件工程学科的发展,丰富学生的知识体系,培养出适应社会需求的软件工程人才。
作者:杨策 单位:吉林建筑大学城建学院