摘    要:数学是计算机科学中不可忽视的重要内容,其为计算机科学的形成与发展奠定了基础。阐述了数学模型、离散数学、组合数学及数论在计算机科学中的应用,为计算机编程、模型建设、数据存储等方面提供了理论支持。

关键词: 数学; 计算机科学; 应用;

Abstract:Mathematics is an important content in computer science,which lays a foundation for the formation and development of computer science. This paper expounds the application of mathematical model,discrete mathematics,combinatorial mathematics and number theory in computer science,which provides theoretical support for computer programming,model construction,data storage,etc.

Keyword: Mathematics; Computer science; Application;

1 、数学在计算机科学中的重要性

数学是一门工具性极强的学科,相对于其他学科来说,其抽象性、逻辑性等特点十分明显。就当前数学的应用来看,其与计算机科学之间有着不可分割的联系。随着互联网技术、人工智能技术的发展,计算机运算性能得到了质的飞跃,计算机的优势也越来越明显,将深奥的数学理论应用到实际问题中,有效解决了现实生活中的各种难题[1]。计算机已经证明了四色问题,证明过程中利用了大量数学思想,如小波分析、离散数学、仿生计算等,人们开始意识到计算机科学与数学之间有着密不可分的关系。计算机的主要任务是进行数据处理、图像处理、程序设计等不同类型的计算,这些工作可以分为数值计算与非数值计算。计算机科学计算步骤如图1所示。

可以看出,计算机在解决问题中需要将实际问题转化为程序,建立完善的数学模型,完成对具体问题的抽象化处理。计算机软件编程是以数学模型为基础的,软件编程中的大量理论和技术是应用数学进行描述的。计算机算法的正确性、程序语义以及理论基础都为数理逻辑或模型论。

图1 计算机科学计算步骤

Fig.1 Computer science calculation steps

2 、数学在计算机科学中的应用

2.1、 数学模型在计算机科学中的应用

数学模型指通过构建符号系统,把对事物系统特点与数量关系的描述以数学形式表现出来。现代科学发展的重要特点之一就是实现科学的数学化,将现实、形象的问题转化为数学模型。随着计算机技术的快速发展及相关产业的成熟,各类软件已应用到社会生产的各个领域,如导航软件、购物软件、新闻软件等都是利用数学模型进行计算机编程,使人们的生产生活更加便捷[2]。当前计算机软件所能处理的问题已经不局限于数学计算领域,而是拓展到用于解决大量非数值计算问题。利用计算机软件编程解决现实问题时,需要将现实问题进行数学化处理,建立基于数值问题的数学模型,即数学方程。针对非数值计算的数学模型建立,则需要通过表、树以及图等相关数据配合数学方程式,建立完善的描述,从而利用计算机进行计算。

2.2、 离散数学在计算机科学中的应用

离散数学在计算机科学中的应用十分广泛,主要有以下几个方面:第一,离散数学在数据结构中的应用。计算机数据结构将操作对象之间的关系分为若干种,分别为集合、线性结构、树形结构、图状结构及网状结构。计算机中数学结构研究的主要内容为数据结构的逻辑体系、基础运算等。其中,逻辑体系与基础运算都是离散数学中重要的离散结构与算法思考内容。离散数学中集合论等知识点及关系等都被应用在计算机数据结构中。如集合论中集合由元素组成,元素是世界上的客观事物,关系是建立在集合论基础上的一种特殊集合[3]。第二,离散数学在数据库中的应用。计算机科学中的数据库应用十分广泛,其中关系数据库是计算机数据库中最常见的类型之一。笛卡尔积是离散数学中的基本理论,也是计算机数据库建设的基础理论之一。笛卡尔积理论为计算机关系数据库的建设提供了理论与方法,并为数据技术的发展作出了巨大贡献。关系数据模型以集合代数作为基础,数据逻辑结构是以行列构成的二维表来阐述关系的数据形式。第三,离散数学在计算机编译中的运用。计算机的编译程序相对繁杂,一般计算机编译程序包含词法分析程序、语法分析程序、语义分析程序等,离散数学中的计算机模型知识点中分析了三种计算模型,分别为文法、有限状态以及图灵机,具体理论有语言与文法、带输出的优先级状态、图灵机等。上述离散数学中的理论知识均能够在计算机编译原理的词法分析中找到。可以看出,离散数学是计算机编译原理的重要基础知识。第四,离散数学在人工智能中的应用。在计算机人工智能中逻辑推理是重要的技术支持。逻辑是数学领域中推理的基础,对计算机人工智能技术有着广泛的现实作用。离散数学中的数学推理知识与布尔代数理论为计算机人工智能的早期发展奠定了坚实基础。第五,离散数学在计算机体系结构中的运用。在计算机体系结构中指令系统设计与优化十分关键,指令系统与计算机系统性能之间有着密切关系。指令系统的优化方式众多,一是对指令格式的优化,指令通常由操作码与地址码构成,指令格式优化即为如何利用最短位数来代表指令的操作与地址信息,以便使程序中的指令字长尽可能短[4]。基于这一目的,需要使用哈夫曼的压缩概念,该概念的基本思想为当各类事件发生概率不平均时,采用优化技术对概率最高的事件用最短的位置来标识,对概率较低的事件则使用较长的位置来表示,这就会导致平均位数变短。利用哈夫曼概念创造出哈夫曼树,利用频度对计算机指令系统中的所有指令进行统计,并根据频度从小到大排列,每次选择其中最小两个频度合并为新频度,将其插入未结合的频度中,如此往复直到所有频度完成结合形成根节点。再针对节点向下延伸分支,分别为“1”与“0”。从根结点开始沿线所经过的代码序列为哈夫曼编码,这一编码系列满足指令使用概率低的指令编以长码。

2.3 、组合数学在计算机科学中的应用

组合数学是与计算机科学一同发展成熟的,具有综合性、边缘性,即为分析事物发生中可能联系的N种数学理论。相对传统数学而言,组合数学是离散事物之间存在的必然数学联系,如构造性问题、最优化问题等。在组合数学中,技术问题是研究最为成熟的内容之一。计算机科学需要研究算法,对算法的运算与存储单元进行评估,体现了算法在空间与时间上的复杂性。组合数学的具体研究内容包括容斥原理、生成函数与递推关系等,组合数学有力推动了计算机科学的发展,为了判断计算机算法的效率,需要使用该算法解答具有给定的输入时需要多少步。

2.4、 数论在计算机科学中的应用

数论也被称为整数论,分为初等数论、解析数论、代数数论及几何数论等分支。代数数论将证书概念推广到一般代数领域中,构建了可除性、素整数等概念。程序设计中应用较为频繁的有代数曲线,如椭圆曲线理论。随着当代计算机科学的发展,数论的应用也愈加广泛,如在计算机方法、代数编码、组合学理论等方面都广泛应用了初等数论研究的一系列成果。数论算法对于计算机程序设计具有较大作用,其中素数问题、素性测试、因子分解、求解同余线性方程等都是计算机程序设计中需要使用的,如基于大素数的密码体系是近年来数论算法的广泛应用之一。

3 、结语

数学是一门逻辑性较强的抽象学科,对于计算机科学的发展具有重要作用。数学能够帮助人们建立抽象的逻辑思维,通过举一反三的思维方式进行创新。数学模型、离散数学、组合数学及数论均在计算机科学中得到了广泛应用,为计算机编程、模型建设、数据存储提供了理论支持。

参考文献

[1]巴哈尔古力·吾吉.浅谈计算机科学技术在计算机教育中的应用[J].计算机光盘软件与应用,2012,(03):250-251.

[2]汪荣臻.数学在计算机科学及应用中的作用分析[J].科技视界,2017,(13):163.

[3]游文杰.计算机科学中的数学──谈计算机专业数学的学习[J].福建师大福清分校学报,2004,(02):16-18.

[4]周良喆.数学思想及其在计算机科学中的应用[J].智库时代,2017,(09):217-218.

数学在计算机科学中的作用,计算机科学中数学的重要性及其运用相关推荐

  1. 计算机技术结题报告,[信息技术在数学课堂教学中的作用]信息技术促进数学课堂结题报告...

    信息技术的飞速发展,推动了教育从目的.内容.形式.方法到组织的全面变革.教师运用现代多媒体信息技术对教学活动进行创造性设计,发挥计算机辅助教学的特有功能,把信息技术和数学教学的学科特点结合起来,可以使 ...

  2. oracle中having作用,oracle中having与where的区别

    1.where 不能放在group by 的后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函 ...

  3. 计算机技术在多媒体教学中的作用,多媒体教学中的现状及作用

    多媒体教学中的现状及作用 1 计算机多媒体教学现状 我国的教育正在逐步向现代教育迈进,摆脱传统的教师-黑板-学生模式.自素质教育提出,我国就充分地意识到发挥学生的主动性.积极性.创造性的重要作用,重在 ...

  4. java中hashcode作用_Java中hashCode的作用

    以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表. hashCode  ...

  5. java中static作用_java中static作用详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以修饰静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  6. endl在c语言中的作用,C++中的endl

    从开始接触C++到现在,一直以为语句 cout << "hello world!" << endl; 中的endl只是一个相当于C中的换行'\n':直到今天 ...

  7. java中exception作用_java中的异常Exception的划分,以及他们的特性。

    1.异常分为编译时异常(ExceptionSubclass)和运行时异常(RuntimeException): 2.编译时异常的发生概率高,而运行时异常的发生概率比较低,因此编译时在编写代码时应该处理 ...

  8. java中ioc作用_Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [Spring中 ...

  9. html中$ 的作用,jquery中的$()是什么?

    jquery中的$()是什么?$是jQuery"类"的一个别称,$()构造了一个jQuery对象.所以,"$()"可以叫做jQuery的构造函数. $()就是j ...

最新文章

  1. Java基础学习总结(3)——抽象类
  2. 从Top500、天河一号和超级计算机引起的话题
  3. Eclipse is running in a JRE, but a JDK is required错误的解决
  4. mac与phy如何实现网络自适应
  5. 【渝粤题库】陕西师范大学210001儿童心理学 作业(高起专、高起本)
  6. Android 系统 (131)---ODM 开发用户常见需求文档(五)
  7. 提示找不到msvcr71.dll怎么办
  8. HDU1228 A + B【map】
  9. [转载] Java静态代码块/构造代码块/构造函数/静态变量/成员变量(相关示例)
  10. vue-router 中router-view不能渲染
  11. Python零基础速成班-第3讲-Python基础(中),list数组、tuple元组、dict字典、set集合
  12. cmd 新增dns_cmd修改DNS,以及DNS大全
  13. 【Python】三维画图——matplotlib以及np.mgrid的使用
  14. 【Codeforces Gym - 101635C Macarons 】【矩阵快速幂+状压】【dfs时间换空间】
  15. WHQL认证和代码签名
  16. 手把手学会 VS Code 快捷任务神技,成为项目组最靓的崽!
  17. Flash as3安全沙箱
  18. pythoneducoder苹果梨子煮水的功效_喝梨苹果熬的茶有什么功效与作用
  19. MEM/MBA数学强化(06)数列
  20. 心系冬奥 翰墨传情 |当代书画名家为奥运加油书画推介展【戴志军篇】

热门文章

  1. sht30 linux示例代码,STM32------SHT30温湿传感器(示例代码)
  2. VB图片分割器九宫格
  3. fastDB CLI
  4. UWP中的Direct2D
  5. ModelState.IsValid忽略型别的检查错误
  6. 关于新光源建设的一些想法
  7. 【java面试经(架构师设计师)-第9课】网络编程校验方法和加密算法
  8. FJUT 3930 最短路径
  9. iperf的ios版本;无线局域网测速
  10. 大型游戏后台实践浅谈