离散数学在计算机科学中的应用论文(集合论在计算机的应用)

自从我们学院进行软件工程认证后,期末考试的专业课全部是大题。这次离散数学的最后一题是:利用本学期学到的离散数学的知识阐释其在一个软件工程中的应用。下面说说离散数学的应用。离散数学在数据结构中的应用数据结构中将操作对象间的关系分为四类:集合、线性结构、树形结构、图状结构或网状结构。数据结构研究的主要内容是数据的逻辑结构,物理存储结构以及基本运算操作。其中逻辑结构和基本运算操作来源于离散

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127159.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 详谈利用系统漏洞及mysql提权

    详谈利用系统漏洞及mysql提权提权,顾名思义就是提升权限,当我们getshell⼀个⽹站之后,⼤部分情况下我们的权限是⾮常低的,这时就需要利⽤提权,让原本的低权限(如只允许列⽬录)→⾼权限(拥有修改⽂件的能⼒),权限提升后,对接下来的渗透有很⼤帮助

  • 计算机网络的分类_计算机网络是怎样分类的

    计算机网络的分类_计算机网络是怎样分类的计算机网络的分类:按照覆盖范围分,计算机网络可以分为局域网(LAN)、城域网(MAN)、和广域网(WAN)。局域网(LAN)是一个高速数据通信系统,它在较小的区域内将若干独立的数据设备连接起来,使

  • 小米手机计算机无法归零,小米体脂秤不归零怎么调

    1、放平体重秤秤角。电子体重秤是比较敏感的,所以先确认四个秤脚是否摆放平稳、否有悬空、否有杂物,另外选择坚实的地面;2、移动后数据稳定再称重。第一次称完下来等数据稳定归零后再进行第二次测量;3、关闭忽略30秒之内的称重数据功能。小米体重秤有个选项,会自动忽略30秒之内的称重数据,也就是说前一个人刚称重完,30秒内另一个人站上去,得不到准确的数据。可以选择关闭该功能或者等30秒后再称重;4、重新绑定…

  • docker(2)CentOS 7安装docker环境「建议收藏」

    docker(2)CentOS 7安装docker环境「建议收藏」前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

  • javascript实现一个自制网页音乐播放器

    javascript实现一个自制网页音乐播放器序接触简书也有一段日子了,这中间的时光还是比较轻松加愉快的,那种可以和他人分享知识的欣喜和愉悦的确是非常棒。我一向都是觉得专心写自己的文就可以了,不会总是纠结有多少人在看,有多少点击等等。用心写好自己的文,体会那种分享的快乐,就可以了。之前写的《js常用方法和一些封装》系列暂且告一段落,接下来,我会通过各种案例,来分享javascript的各种技巧,所以最终将这个系列的名称定为:《从案例中学习

  • BigDecimal 加减乘除运算[通俗易懂]

    加法add()函数BigDecimaln1=newBigDecimal(“0.01”);BigDecimaln2=newBigDecimal(“0.02”);System.out.println(“加法:”+n2.add(n1));加法:0.03减法subtract()函数BigDecimaln1=newBigDecimal(“0.01”);BigDecimaln2=newBigDecimal(“0.02”);System….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号