李卓
摘 要:计算机算法设计是计算机行业发展的基础,而且在很多领域都得到了应用。关于计算机算法设计和数据结构离散性,是实现计算机算法有效应用的必要前提。以此为对象展开分析。首先分别对计算机算法和数据结构离散性做出分析,认识到实现的基本原理与作用,为今后计算机算法和数据结构离散性在实践中应用提供参考。其次从离散数学和数字电子、二进制及其离散性两个方面,阐述实现方法。最后则分析计算机算法在云计算、人脸识别软件、密码破译中的应用,阐述不同算法的应用原理,发挥数据结构离散性优势。旨在为今后计算机问题的解决、数据高效处理提供计算机算法支持。
關键词:计算机算法 数据结构 离散性 连续性 二进制
中图分类号:TP391
Research on the Algorithm Design and Data Structure Discreteness of Computers
LI Zhuo
(Heilongjiang University of Business and Technology, Harbin, Heilongjiang Province, 150001 China)
Abstract: Computer algorithm design is the foundation of the development of the computer industry and has been applied in many fields. The design of computer algorithms and the discreteness of its data structures are necessary prerequisites for the effective application of computer algorithms, and this paper analyzes them as reasearch objects. Firstly, it analyzes computer algorithms and the discreteness of its data structures separately, and recognizes the basic principles and functions of implementation, which provides references for the practical application of computer algorithms and data structure discreteness in the future. Secondly, it expounds implementation methods from two aspects: discrete mathematics and digital electronics, as well as binary and its discreteness. Finally, it analyzes the applications of computer algorithms in cloud computing, facial recognition software and password cracking, explains the application principles of different algorithms, and gives full play to the advantages of data structure discreteness, aiming to provide computer algorithm support for solving computer problems and efficiently processing data in the future.
Key Words: Computer algorithm; Data structure; Discreteness; Continuity; Binary
计算机技术是社会发展以及行业升级的重要支持,但这主要是与前期的程序设计有关。算法是计算机得以运行的必要基础,计算机稳定运行需要算法的支撑。通过数据结构的离散性,可以解决不同类型的计算机问题,但缺陷是不能精准识别连续数量关系。程序设计人员在采集到信息后,转换为离散性,切实存在的计算机处理问题能夠更加高效地解决,彰显计算机算法设计的应用优势。为此,本文以计算机算法设计和数据结构离散性为对象展开分析,总结算法设计和离散性的优化对策。
1 计算机算法与数据结构离散性
1.1 基本概述
1.1.1 计算机算法
计算机相关问题的处理,计算机算法是协调处理的指令,并且对实际存在问题制定解决方法更加完整的描述[1]。工作人员输入指令后,快速获得目标输出。关于计算机算法的认知,各个领域往往有不同的角度。例如:流程程序方面,往往对计算机算法的要求不高;人工智能和数据挖掘等方面,计算机算法则面临严格要求。存在这一区别的原因,主要是算法在人工智能、数据挖掘的程序操作中,占据核心位置。
1.1.2数据结构离散性
数据结构是由海量具有结构关系的数据组成,具体需要总结各项数据的元素特性。关于上述提出的数据结构,共有4种:线性结构、集合结构、树状结构、图形结构。综合对比这4种结构类型,发现前两种类型的离散性特征更强,后两种的独立性则表现在其中储存的数据元素上[2]。考虑到这一点,数据结构离散性在计算机学科领域的表现往往更加清晰。在数据结构的作用下可以分析关系所包含的所有数据结合,其间还需发挥离散数学理论的作用,以抽象性思维看待数据结构。
1.2计算机算法设计方法
递推法在计算机算法设计中应用,主要是为了适应计算机在运行中所呈现出的高效率特性。以指定规律计算序列的任意项值为对象,计算之后序列的一些指定项值。在上述计算过程中应用递归法,以程序调用编程,达到弱化问题复杂性的目的。总而言之,应用递归法的关键在于层层转化处理,或者是选择和原复杂问题相似度高的小规模问题。
1.3 离散性分析
计算机算法设计中如果应用递推法,针对计算机本身,会主动且持续地应用最大数,与数组包含的下一个数字进行对比,此流程会持续到结束。相比之下,人类对此问题的思考则会优先以连续性思维模式为对象,排列数字大小。有鉴于此,便可确定计算机的离散性特征[3]。如果采用递归法,同样可以简化算法中一些不必要的计算流程。在此前提下所体现的离散性重点是程序运行。例如:计算机程序是以“栈”实现高效率运行,而且也表现出“后进先出”这一明显特征。算法作为递归运行的必要条件,若在递归运行中需要用到返回值,算法将会将“自己”返回,直至到达了确定值位置再层层返回。根据以上分析对比可以确定计算机递归计算和内存Push两个流程并非先后顺序进行,甚至在所有计算流程结束之后Pop出仍然在继续,这便是计算离散性的直观体现。
2 计算机数据结构离散性的实现
计算机具有运算、储存这两项基本功能,而此功能的实现基本方法是二进制。所以,计算机运行很大程度上与逻辑数学有关。针对逻辑运算进行分析,离散性非常明显。通过现有研究和分析,发现离散性、二进制之间有密切的联系[4]。所以,按照二进制呈现离散性特征,可以作为数据结构离散性分析的依据。下面以此为前提,从离散数学和数字电子、二进制及其离散性两个方面,对计算机数据结构离散性的实现做出分析。
2.1 离散数学和数字电子
一般通过整数分析离散对象,在此前提下“离散数学”可作为处理可数集合的数学分支,这里提到的可数集合,和整数子集基数一致,其中涵盖有理数集,却不包含实数集。尽管现阶段“离散数学”受到业内广泛关注,与之相关的研究也比较多,但是现有定义并未获得普遍的认可[5]。关于定义的界定,普遍倾向于“无连续变化量、概念的数学”。所以,作为数学分支总称,通常离散数学、数据结构两者之间不是以独立的形式存在。特别是离散数学,实际存在的问题,应该以复杂性关系为核心展开拓展分析,降低计算机实操过程中问题的发生率。
如果从学科角度分析数字电子,其与计算机学科之间存在一定程度的交叉。在离散性研究过程中,数字电子一般也只是以基本概念的形式,由学科进行引入分析,也就是所谓的数字信号。对其内涵进行界定,可以发现数据信号、模拟信号两者的概念具有相对性,数据信号的数值、时间具有连续性,而模拟信号则具有离散性。参考这一点,便能够发现两者之间存在比较显著的区别。若是立足于数学维度,模拟信号所具有的连续性,代表微积分有相关意义,而离散信号则无任何意义。
2.2 二进制及其离散性
所谓二进制,即逢二进位的进位方法,实现二进制的关键在于“0”“1”。考虑到符号相对简单,运算量少,所以在实践中更多是应用计算机进行实现。此次研究数据结构离散性,提出了二进制离散性这一观点。若想真正理解,可以延伸到计算机和人工之间的差异。计算机支持识别的对象中,仅包括二进制的“0” “1”,但如果是站在人类的角度,无论是音频、图片还是文字,均可以从中获取到有效信息,反而对于计算机而言,信息此类信息面临困难,而且识别效率相比二进制也非常低。那么若想高效且准确地识别信息,离散处理非常必要。通过有效的离散处理,可以充分发挥出数据识别这一优势。一般在离散处理中,工作人员将所有数据信息离散化,为后面的数据处理、数据储存等做好准备。计算机利用图片、文字等信息识别,获得的离散性便是二进制数据的直观呈现,对其进行离散化处理,其间同样需要应用二进制方法,完整地呈现音频与图片中包含的信息,以此来提升计算机在信息识别方面的效率。此类信息在转换为二进制后,同样应进行离散处理。通过分析可知,以音频为例,在经过了离散处理后,信息的清晰度、音频还原度均有明显改善。
3 计算机算法在实践中的运用
3.1 应用于云计算
计算机与信息技术在信息化社会的发展下,不断创新与演进,其间推出了一系列新技术,其中便包括云计算。云计算技术作为新一代信息技术,其优势的体现,需要与计算机相辅相成,在各个行业中的应用,也是以自动化模式存在。因为云计算技术具有很强的自动化水平,尤其是将其运用于数据处理方面,更是表现出很强的能力,所以云计算本身对算法也提出了很高的要求。除了以上性能外,云计算技术在应用中也表现出便捷性,凭借云计算的这一优势,赋能网络服务,将网络服务范围予以拓展。
以计算机算法为基础的云计算,应用出发点为服务,立足点为现代科学技术,从中任意选择操作模式。综合上述总结的云计算诸多优势,其实更多是在实践应用中加以体现,一方面不需要投入大量成本,另一方面对于实际产生的海量数据,也可以实现高效率分析与处理,站在技术使用者的角度,可以直观体现出数据处理的有的放矢,为计算机算法基础上的云计算应用赋予了很强的灵活性,可以满足多类用户在数据处理方面的需求。
3.2 应用于人脸识别软件
人们的生活深受现代技术的影响,尤其是智能手机的普及,更是直接改变了人们的生活习惯。考虑到日常生活中,云计算与人们的直接联系并不多,相比之下可能更加倾向于使用智能手机拍照,而且也会频繁地用到各种各样的修图软件。所以,在现代化技术支持下,智能手机的相机功能非常多元化,不仅摄影、照相非常清晰,而且自带美颜功能,准确识别人脸与五官。分析人脸识别软件上述功能得以实现的原因,即计算机算法设计。
其实针对智能手机中的美颜功能,除了精准识别人脸、五官外,还应按照识别所得内容,在软件中自动优化与修复,对于最终修复成果,也不能与真人有明显区别。对此,软件设计阶段,为了实现上述功能,计算机算法的设计相对复杂,同时包括识别、瘦脸、美白等其他功能。例如美白这一功能,其实在图像处理中,主要参考的是三原色原理。对于待美颜照片而言,在软件中也是应用三原色,将图片中的R(Red)、G(Green)、B(blue)颜色信息予以保存。上述3个数值取值范围在0~255之间,如果数值接近0,代表图像黑度高;数值接近255,则图像越白[6]。所以,美颜软件中具有的美白功能,即以此原理将人像脸部色彩改变。再如人脸检测和关键点定位功能,应用的计算机算法主要有深度学习模型,具体有卷积神经网络(CNN)。首先对于需要修图的图像,需要生成对抗网络(GANs),此环节训练生成器以及判别器网络,其中判别器的作用是对生成图像质量进行评估。其次则要做好风格迁移,图像风格向其他图像转移。此功能在图像美颜中,能够实现图像整体色调、风格的变化,呈现出差异化的修图效果。
3.3 应用于密码破译
计算机算法除了人脸识别软件、云计算技术外,还应用于密码破译。密码破译的前期是信息加密,此项工作的实现离不开计算机,但因传统技术相对滞后,非法人员很容易将正在传输过程的信息破译。在密码破译中应用计算机算法,关键便是前期算法设计。这里提到的计算机算法,属于计算机基础技术。
例如:单向HASH算法,因为此算法用于密码保护很难保证安全性,所以很多企业在应用单向HASH算法时,对其进行了加盐与反复HASH处理,上述拓展方法进一步增强了密码破译难度。已经加“固定盐”处理的HASH算法,安全防护重点是避免“盐”的泄露,如果发现保护对称密钥一类的问题,当“盐”泄露后,可按照“盐”重构彩虹表实现破解,针对反复HASH的作用,仅是延长破解时间,在密码破译方面没有本质方面的作用。
4 结语
综上所述,计算机本身在各个行业中应用的基础是计算机算法,通过差异化计算机算法设计,能够实现诸多信息化、自动化功能,其中便包括云计算、人脸识别、美颜以及密码破译等。计算机算法设计的过程中,相关人员不能忽略数据结构所具有的离散性特点,这对于数据结构的优化、产生数据的处理等具有重要作用。一方面可以提高数据处理效率,另一方面也可以凭借数据结构离散性优势,夯实计算机算法设计的基础,从而进一步拓宽计算机算法的应用范畴。
参考文献
[1]马春燕,陈晶,姚鼎,等.嵌入式智能计算机计算能力评测方法[J].计算机学报,2023,46(11):2279-2301.
[2]庞伊贺,张伟彬,熊官送,等.三余度飞行控制计算机余度管理算法研究[J].现代电子技术,2023,46(18):85-89.
[3]汪玲,徐光平.基于平衡区组的数据编码分布式一致性算法设计[J].天津理工大学学报,2023,39(4):32-38.
[4]王贺哲.基于BOPPPS教学模型的算法设计与分析教学设计:以 “贪心算法”为例[J].电脑知识与技术,2023,19(20):167-169.
[5]何強强.基于三值光学计算机的模拟退火优化算法设计与实现[D].阜阳:阜阳师范大学,2023.
[6]李伟健.分布式优化算法的分析设计及应用[D].合肥:中国科学技术大学,2023.