自从我们学院进行软件 工程认证后,期末考试的专业课全部是大题。这次离散数学的最后一题是:利用本学期学到的离散数学的知识阐释其在一个软件工程中的应用。

下面说说离散数学的应用。

离散数学在数据结构中的应用
数据结构中将操作对象间的关系分为四类:集合、线性结构、树形结构、图状结构或网状结构。数据结构研究的主要内容是数据的逻辑结构,物理存储结构以及基本运算操作。其中逻辑结构和基本运算操作来源于离散数学中的离散结构和算法思考。离散数学中的集合论、关系、图论、树四个章节就反映了数据结构中四大结构的知识。如集合由元素组成,元素可理解为世上的客观事物。关系是集合的元素之间都存在某种关系。例如雇员与其工资之间的关系。图论是有许多现代应用的古老题目。瑞士数学家列昂哈德·欧拉在18世纪引进了图论的基本思想,他利用图解决了哥尼斯堡七桥问题。还可以用边上带权值的图来解决诸如寻找交通网络里两城市之间最短通路的问题。而树反映对象之间的关系,如组织机构图、家族图、二进制编码都是以树作为模型来讨论。

离散数学在数据库中的应用
数据库技术被广泛应用于社会各个领域,关系数据库已经成为数据库的主流,离散数学中的笛卡儿积是一个纯数学理论,是研究关系数据库的一种重要方法,显示出不可替代的作用。不仅为其提供理论和方法上的支持,更重要的是推动了数据库技术的研究和发展。关系数据模型建立在严格的集合代数的基础上,其数据的逻辑结构是一个由行和列组成的二维表来描述关系数据模型。在研究实体集中的域和域之间的可能关系、表结构的确定与设计、关系操作的数据查询和维护功能的实现、关系分解的无损连接性分析、连接依赖等问题都用到二元关系理论。

离散数学在编译原理中的应用
编译程序是计算机的一个十分复杂的系统程序。一个典型的编译程序一般都含有八个部分:词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、错误检查和处理程序、各种信息表格的管理程序。离散数学里的计算模型章节里就讲了三种类型的计算模型:文法、有限状态机和图灵机。具体知识有语言和文法、带输出的有限状态机、不带输出的有限状态机、语言的识别、图灵机等。短语结构文法根据产生式类型来分类:0型文法、1型文法、2型文法、3型文法。以上这些在离散数学里讲述到的知识点在编译原理的词法分析及语法分析中都会用到。因此,离散数学也是编译原理的前期基础课程。

离散数学在人工智能中的应用
在人工智能的研究与应用领域中,逻辑推理是人工智能研究中最持久的子领域之一。逻辑是所有数学推理的基础,对人工智能有实际的应用。采用谓词逻辑语言的演绎过程的形式化有助于我们更清楚地理解推理的某些子命题。逻辑规则给出数学语句的准确定义。离散数学中数学推理和布尔代数章节中的知识就为早期的人工智能研究领域打下了良好的数学基础。许多非形式的工作,包括医疗诊断和信息检索都可以和定理证明问题一样加以形式化。因此,在人工智能方法的研究中定理证明是一个极其重要的论题。在这里,推理机就是实现(机器)推理的程序。它既包括通常的逻辑推理,也包括基于产生式的操作。推理机是使用知识库中的知识进行推理而解决问题的。所以推理机也就是专家的思维机制,即专家分析问题、解决问题的方法的一种算法表示和机器实现。当然以上说的是专家系统,一般来说这种人工智能已经被基于统计学习的机器学习所取代。

离散数学在计算机体系结构中的应用
在计算机体系结构中,指令系统的设计和改进内容占有相当重要的地位,指令系统的优化意味着整个计算机系统性能的提高。指令系统的优化方法很多,一种方法是对指令的格式进行优化,一条机器指令是由操作码和地址码组成,指令格式的优化是指如何用最短的位数来表示指令的操作信息和地址信息,使程序中的指令的平均字长最短。为此可以用到哈夫曼的压缩概念,哈夫曼(Huffman)压缩是一种无损压缩法。Huffman压缩概念的基本思想是,当各种事件发生的概率不均等时,采用优化技术对发生概率最高的事件用最短的位数(时间)来表示(处理),而对出现概率较低的允许用较长的位数(时间)来表示(处理),就会导致表示(处理)的平均位数(时间)的缩短。利用哈夫曼算法,构造出哈夫曼树。方法是将指令系统的所有指令的使用频度进行统计,并按使用频度由小到大排序,每次选择其中最小的两个频度合并成一个频度是它们二者之和的新结点。再按该频度大小插入余下未参与结合的频度值中。如此继续进行,直到全部频度结合完毕形成根结点为止,之后,对每个结点向下延伸的两个分支,分别标注“1”或“0”,从根结点开始,沿线到达各频度结点所经过的代码序列就构成了该指令的哈夫曼编码。这样得到的编码系列就符合了指令使用概率低的指令编以长码,指令使用概率高的指令编以短码的初衷。

补充
离散数学在计算机研究中的作用越来越大,计算机科学中普遍采用离散数学中的一些基本概念、基本思想、基本方法,使得计算机科学越趋完善与成熟。离散数学在计算机科学和技术中有着广泛应用,除了在上述提到的领域中发挥了重要作用外,在其他领域也有着重要的应用,如离散数学中的数理逻辑部分在计算机硬件设计中的应用尤为突出,数字逻辑作为计算机科学的一个重要理论,在很大程度上起源于离散数学的数理逻辑中的命题与逻辑演算。利用命题中各关联词的运算规律把由高低电平表示的各信号之间的运算与二进制数之间的运算联系起来,使得我们可以用数学的方法来解决电路设计问题,使得整个设计过程变得更加直观,更加系统化。集合论在计算机科学中也有广泛的应用,它为数据结构和算法分析奠定了数学基础,也为许多问题从算法角度如何加以解决提供了进行抽象和描述的一些重要方法,在软件工程和数据库中也会用到。代数结构是关于运算或计算规则的学问,在计算机科学中,代数方法被广泛应用于许多分支学科,如可计算性与计算复杂性、形式语言与自动机、密码学、网络与通信理论、程序理论和形式语义学等,格与布尔代数理论成为电子计算机硬件设计和通讯系统设计中的重要工具,图论对开关理论与逻辑设计、计算机制图、操作系统、程序设计语言的编译系统以及信息的组织与检索起重要作用,其平面图、树的研究对集成电路的布线、网络线路的铺设、网络信息流量的分析等的实用价值显而易见

离散数学在计算机科学中的应用相关推荐

  1. 数学在计算机科学中的作用,计算机科学中数学的重要性及其运用

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

  2. 等价关系在计算机科学中的应用,“离散数学”中的等价关系

    "离散数学"中的等价关系 作者:吴国兵 作者单位:南京审计学院,信息科学学院,南京,210029 刊名: 计算机教育 英文刊名:COMPUTER EDUCATION 年,卷(期): ...

  3. 离散数学在计算机科学与技术中的应用,《离散数学》课程在计算机学科中的作用及其应用...

    <离散数学>课程在计算机学科中的作用及其应用 摘要:离散数学是计算机科学的核心基础理论课,为后续课程提供必须的理论基础.分析了离散数学在计算机学科中与其他课程之间的关系,阐述了离散数学在计 ...

  4. 浅谈数学在计算机科学中的应用,浅谈计算机科学技术在数学思想中的应用(原稿)...

    <浅谈计算机科学技术在数学思想中的应用(原稿).doc>由会员分享,可免费在线阅读全文,更多与<浅谈计算机科学技术在数学思想中的应用(原稿)>相关文档资源请在帮帮文库(www. ...

  5. 计算机科学中的数学等(视频)

    [南开大学] 算法导论课程(参考书:算法设计) @张圣林老师 [南开大学] 算法导论课程(参考书:算法设计) @张圣林老师_哔哩哔哩_bilibili 算法导论课程[2020最新版] 算法导论课程[2 ...

  6. 论数学在计算机科学中的基础作用

    论数学在计算机科学中的基础作用 课题引入 计算机基础与数学联系十分紧密.当今更为火爆的网络软件开发等信息界的精英,大部分是数学出身,数学在计算机中的应用是不言而喻的. 大部分高校的计算机系所开设的数学 ...

  7. 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数(附论文)

    来源:机器之心 作者:Petros Drineas.Michael W. Mahoney 本文共3994字,建议阅读6分钟.本文为你分享一篇来自普渡大学与UC Berkeley两位教授的概述论文中的线 ...

  8. 开发者必读:计算机科学中的线性代数(附论文)

    来源:机器之心 作者:Petros Drineas.Michael W. Mahoney 本文共3994字,建议阅读6分钟. 本文为你分享一篇来自普渡大学与UC Berkeley两位教授的概述论文中的 ...

  9. 理论计算机科学中最令人困惑的谜题之一被解开

    来源:原理 "自敏感度猜想提出以来,它便是所有组合学和理论计算机科学中最令人沮丧和尴尬的开放性问题之一."德克萨斯大学奥斯汀分校的理论计算机学家Scott Aaronson在一篇博 ...

最新文章

  1. 不看你都不知道,原来码农的诞生这么不容易
  2. 搭建高吞吐量 Kafka 分布式发布订阅消息 集群
  3. 未雨绸缪 | 一文简介 Azure Front Door
  4. python true_True关键字,带Python示例
  5. 170329、用 Maven 部署 war 包到远程 Tomcat 服务器
  6. ElementUI组件库
  7. 【题解】luoguP2680运输计划
  8. 设计模式08_适配器
  9. spark集群搭建整理之解决亿级人群标签问题
  10. [转载红鱼儿]kbmmw 开发点滴:kbmMW在事务中批量执行SQL
  11. 闲鱼Flutter混合工程持续集成的最佳实践
  12. diskpart 设置硬盘格式
  13. [入门向]标准测试用例模板
  14. 参考文献起止页码怎么写_参考文献起止页码格式
  15. 《SpringMVC视频教程》(p2~p3)
  16. 软键盘遮挡edittext_Android软键盘遮挡的四种解决方案
  17. 【文献笔记】NOMA+D2D模型3 (D2D group)
  18. 深信服VMP 内存分配一点看法
  19. Docker-常用基础命令整理
  20. 【算法知识】先验分布、后验分布、似然估计

热门文章

  1. GooglePlay马甲包过审详细流程
  2. 数学黑洞6174问题
  3. 王者荣耀主播(孤王)过度劳累猝死 曾被誉为国服第一辅助
  4. 吴恩达卷积神经网络学习笔记(六)|CSDN创作打卡
  5. 运营干货!分销系统怎么做?
  6. 数据标准化与PCA白化原理探索
  7. Hyperlynx DDR SI 仿真分析技术 | IBIS 模型适配
  8. tensorflow+k-means聚类 简单实现猫狗图像分类
  9. 跟锦数学2017年上半年
  10. 改计算机名字 和 命令