国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

計算機(jī)編程中數(shù)學(xué)算法優(yōu)化的策略研究

2020-04-24 14:50殷華英楊紅梅
電腦知識與技術(shù) 2020年5期
關(guān)鍵詞:建模優(yōu)化

殷華英 楊紅梅

摘要:當(dāng)前,信息技術(shù)已經(jīng)滲透到人們生活的各個方面,各種應(yīng)用程序已經(jīng)深刻影響著人們的日常生活。程序由某種編程語言進(jìn)行編寫。很多應(yīng)用都需要借助數(shù)學(xué)算法來完成,不同的算法在計算機(jī)中運行的效率是不一樣的。在某些場合,算法的選擇及對應(yīng)的優(yōu)化方法尤為重要。該文通過對計算機(jī)編程和算法的關(guān)系進(jìn)行分析說明,并給出了對算法進(jìn)行優(yōu)化的相關(guān)策略。

關(guān)鍵詞:數(shù)學(xué)算法;計算機(jī)編程;優(yōu)化;建模

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2020)05-0090-02

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

1 數(shù)學(xué)算法與計算機(jī)編程概述

數(shù)學(xué)算法是根據(jù)問題數(shù)據(jù)之間的關(guān)系,給出實現(xiàn)問題解決方案的準(zhǔn)確描述。在計算機(jī)編程中,算法將轉(zhuǎn)換為一條條指令。一個算法的優(yōu)劣可以通過空間復(fù)雜度和時間復(fù)雜度來度量。通過在程序中合理使用數(shù)學(xué)算法,可以提高程序執(zhí)行效率。一般情況下,數(shù)學(xué)算法需要以數(shù)學(xué)程序和方法對工作問題進(jìn)行分析、設(shè)計,使問題解決方法可以得到有效的簡化,同時還可以快速獲得準(zhǔn)確的結(jié)果。在目前的計算機(jī)編程中,算法和編程語言的結(jié)合已經(jīng)非常緊密,算法也成為計算機(jī)科學(xué)中一個重要分支。應(yīng)用數(shù)學(xué)算法可以和諸如C語言等面向過程的語言結(jié)合,也可以和面向?qū)ο蟮恼Z言結(jié)合,使語言的適用性更廣泛,同時還可以對建模思想進(jìn)行有效的創(chuàng)新,使建立的模型更加規(guī)范,使計算機(jī)程序可以在短時間內(nèi)執(zhí)行完成,得出正確結(jié)果。

通過數(shù)學(xué)思想建立數(shù)學(xué)模型,可以為解決實際問題提供便利,可以使復(fù)雜的問題以直觀的方式進(jìn)行展示,簡化問題的煩瑣性,使抽象的問題變得具體。數(shù)學(xué)模型可以將實際問題進(jìn)行有效的轉(zhuǎn)化,對問題進(jìn)行深入的分析和研究,發(fā)現(xiàn)問題蘊含的規(guī)律,從而確定合理的解決方案,使問題得到順利的解決。

計算機(jī)編程就是使用某種語言編寫程序代碼,使程序?qū)崿F(xiàn)某種功能。程序在電腦上執(zhí)行時,將按照設(shè)定的流程進(jìn)行運行。在選擇和應(yīng)用算法時,有著非常具體明確的要求,合理的算法選擇,可以保證程序運行的高效、準(zhǔn)確、資源占用少。計算機(jī)語言是計算機(jī)編程的基本實現(xiàn)方式,需要對計算機(jī)語言進(jìn)行深入的分析和研究,才能對基于該語言的算法進(jìn)行完善[3]。從本質(zhì)上來說,在編程中使用算法就是數(shù)學(xué)思維在計算機(jī)語言中的具體應(yīng)用,是電腦對復(fù)雜問題進(jìn)行處理的有效方法。對計算機(jī)編程進(jìn)行算法優(yōu)化,提高編程的質(zhì)量,使計算機(jī)更有效率地完成任務(wù)。

2 計算機(jī)編程中數(shù)學(xué)算法優(yōu)化的目的和意義

同一個問題解決方法可以有多個,對應(yīng)的算法也會不一樣。不同的算法雖然在結(jié)果上是相同的,但步驟和過程卻有很大差異,有的復(fù)雜煩瑣,有的簡單明了。如計算1到100之間所有數(shù)的累加和,依次累加也可得出結(jié)果,使用高斯方法,用加法結(jié)合律,也能求出結(jié)果,很明顯后一種方法簡單快捷得多。不同算法應(yīng)用到程序中,程序執(zhí)行的效率會有差異,這就涉及算法優(yōu)劣的一個度量。衡量一個算法的優(yōu)劣有兩個指標(biāo):時間復(fù)雜度和空間復(fù)雜度。對于問題規(guī)模n,時間復(fù)雜度對應(yīng)的數(shù)量級別越低,時間效率就越高??臻g復(fù)雜度是指算法從運行開始到結(jié)束所需的最大存儲空間,它與程序本身空間、輸人數(shù)據(jù)占用空間以及輔助變量空間占用有關(guān),其中輔助變量占用空間與算法息息相關(guān)。算法的優(yōu)化是建立在算法分析的基礎(chǔ)上,選擇合適的算法。

信息化社會中,計算機(jī)程序已經(jīng)深刻影響了人們生活的各個方面,隨著編程方式的不斷創(chuàng)新,計算機(jī)編程受到更多人的關(guān)注和重視。計算機(jī)軟件編程技術(shù)對于問題處理非常關(guān)鍵。數(shù)學(xué)模型建立后,需要通過程序?qū)δP瓦M(jìn)行測試和檢驗,以測試結(jié)果為基礎(chǔ)對程序代碼進(jìn)行調(diào)整和完善,使解決方案更加符合實際需要。當(dāng)所有測試工作都全部結(jié)束后,就可以將優(yōu)化后方案付諸實施,在實際活動中進(jìn)行應(yīng)用,對復(fù)雜問題進(jìn)行解決和處理,得到正確的結(jié)果。

在計算機(jī)編程中對數(shù)學(xué)算法進(jìn)行優(yōu)化,尋找解決問題的最佳方式,可以使數(shù)學(xué)和計算機(jī)理論知識完美結(jié)合,使理論知識可以發(fā)揮最大的作用和價值,使計算機(jī)發(fā)揮最優(yōu)性能。應(yīng)用數(shù)學(xué)算法對計算機(jī)編程優(yōu)化進(jìn)行分析,需要借助問題的全面數(shù)據(jù),深入多元地分析和研究對象特點,發(fā)現(xiàn)內(nèi)在規(guī)律,為問題解決提供幫助,使問題得到有效的處理。

3 數(shù)學(xué)算法優(yōu)化編程策略

衡量算法性能優(yōu)劣有多個指標(biāo),算法優(yōu)化是指對算法的有關(guān)性能指標(biāo)進(jìn)行優(yōu)化,如時間復(fù)雜度、空間復(fù)雜度、健壯性等,使其符合最優(yōu)要求。大數(shù)據(jù)時代,大量的數(shù)據(jù)在不同的應(yīng)用場景中產(chǎn)生,這些數(shù)據(jù)體量巨大,甚至達(dá)到pb級,數(shù)據(jù)也分散在不同地方,如何基于這些數(shù)據(jù)產(chǎn)生有效的結(jié)果,算法的選擇及對應(yīng)的優(yōu)化方法尤為重要。對于計算機(jī)編程來講,高質(zhì)量的算法一直是程序編寫者追求的目標(biāo)。

3.1 使用合適算法,建立正確數(shù)學(xué)模型

一個復(fù)雜問題的解決,數(shù)學(xué)建模是必不可少的。數(shù)學(xué)建模就是根據(jù)實際問題來建立數(shù)學(xué)模型,對數(shù)學(xué)模型來進(jìn)行求解,然后根據(jù)結(jié)果去解決實際問題。在對計算機(jī)編程進(jìn)行優(yōu)化時,需要結(jié)合數(shù)學(xué)理論先對問題建立科學(xué)、規(guī)范的數(shù)學(xué)模型。數(shù)學(xué)算法在建立模型的過程中是首要考慮和解決的問題,但是相對比較抽象。數(shù)學(xué)模型轉(zhuǎn)化為計算機(jī)程序代碼有時需要借助特殊的數(shù)據(jù)存儲結(jié)構(gòu),如鏈表、二叉樹、圖等。數(shù)學(xué)建模是算法優(yōu)化的關(guān)鍵,對于復(fù)雜的問題用模型進(jìn)行定量規(guī)范的描述,使其可以轉(zhuǎn)換為方便計算的數(shù)學(xué)結(jié)構(gòu)。構(gòu)建規(guī)范的數(shù)學(xué)模型,可以使建立程序流程更加嚴(yán)謹(jǐn)、代碼更為精煉。數(shù)學(xué)建模不僅可以使數(shù)學(xué)算法與編程語言完美結(jié)合,同時,算法的準(zhǔn)確性也對程序優(yōu)化程度產(chǎn)生直接的影響。在求兩個正整數(shù)的最大公約數(shù)時,對應(yīng)的算法就有很多,可以從較小的數(shù)開始,通過反向循環(huán)找到最大公約數(shù),也可利用輾轉(zhuǎn)相除法,不同算法,執(zhí)行效率是明顯不同的。

計算機(jī)編程優(yōu)化的重點在于問題建模。整合計算機(jī)和數(shù)學(xué)的理論知識,可以為建模提供準(zhǔn)確的依據(jù),使建模順利完成。數(shù)學(xué)模型建立是計算機(jī)編程的重要前提,如果想要保證編程優(yōu)化的合理,就需要準(zhǔn)確應(yīng)用數(shù)學(xué)算法。數(shù)學(xué)算法對于編程具有決定性的作用。在分析的過程中,需要對計算機(jī)編程影響因素進(jìn)行分析和考慮,對算法進(jìn)行全面的優(yōu)化,可以使計算機(jī)以最高的效率完成任務(wù)。如在大數(shù)據(jù)的過濾和推薦應(yīng)用中,常用的推薦算法有:基于內(nèi)容的推薦算法、基于協(xié)同過濾的推薦算法、基于關(guān)聯(lián)規(guī)則的推薦算法、基于用戶使用效用的推薦算法、基于知識推理的推薦算法以及它們的組合推薦算法。這些算法都有其特定的應(yīng)用場景和目標(biāo),在使用這些算法建立模型時,要針對解決問題實際情況進(jìn)行優(yōu)化。

3.2 合理設(shè)計數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是具有特定關(guān)系的元素集合,是計算機(jī)存儲和組織數(shù)據(jù)的方式。算法是基于數(shù)據(jù)結(jié)構(gòu)的解題步驟,合理的數(shù)據(jù)結(jié)構(gòu)可以為算法優(yōu)勢發(fā)揮產(chǎn)生重要的作用,從根本提升算法性能。此外,還可以結(jié)合實際需要對內(nèi)存空間進(jìn)行嚴(yán)格的控制,使算法可以在短時間內(nèi)迅速完成計算。例如,對于稀疏矩陣來說,按照正常的數(shù)組進(jìn)行存儲,空間利用將會受到嚴(yán)重的影響,很多空間會被浪費。此時,可以運用三元組或十字鏈表來壓縮高稀疏矩陣存儲空間,滿足其在內(nèi)存方面的需要。一旦確定三元組或十字鏈表表示稀疏矩陣,則基于這些數(shù)據(jù)結(jié)構(gòu)的稀疏矩陣相關(guān)運算如轉(zhuǎn)置、相加等實現(xiàn)的算法也需要和數(shù)據(jù)結(jié)構(gòu)相一致。再比如,從一個由若干個活動組成的AOE網(wǎng)中查找關(guān)鍵路徑,這是影響整個工程進(jìn)度的重要路徑。這時可以借助圖這種數(shù)據(jù)結(jié)構(gòu),用鄰接表來存儲數(shù)據(jù)。基于這種數(shù)據(jù)結(jié)構(gòu)設(shè)計解決問題的算法:根據(jù)每個活動的最早開始時間和最遲開始時間來判斷該活動是否為關(guān)鍵活動,進(jìn)而形成關(guān)鍵路徑。

3.3 編程語言運用數(shù)學(xué)算法的優(yōu)化方法

建模及算法,最終要轉(zhuǎn)化為程序代碼去由計算機(jī)執(zhí)行。不同語言編寫的程序,在編譯運行過程中,執(zhí)行機(jī)制都會有差異。在對算法進(jìn)行優(yōu)化時,要充分了解使用語言的特點,使用相應(yīng)的代碼實現(xiàn)。如c語言是面向過程的一種語言,作為系統(tǒng)級的一門語言,其應(yīng)用范圍非常廣泛,系統(tǒng)級應(yīng)用,硬件開發(fā)、通用軟件都可以使用它進(jìn)行開發(fā)。在面向過程程序設(shè)計中,大的問題或任務(wù)會被分解成一系列小任務(wù),每個小的任務(wù)由函數(shù)來完成。解決問題依賴于這些眾多的函數(shù)。一個復(fù)雜的算法,也可以由多個函數(shù)組成。如何設(shè)計這些函數(shù),可以采用自頂向下、逐步求精的程序設(shè)計方法,也可以采用自下而上的方法。還有遞歸函數(shù),這是一種在很多特殊場景使用方便的一種函數(shù),但對于在不同語言的中用法,還是要注意其使用限制。c語言中,指針是一種很常用的類型,它可以直接對內(nèi)存地址直接操作。算法在優(yōu)化時,就可以結(jié)合該語言的特性,進(jìn)行對應(yīng)的邏輯設(shè)計和語言實現(xiàn)。

面向?qū)ο蟪绦蛟O(shè)計語言(OOP)是現(xiàn)在廣泛流行的編程語言,如Java,C++等。與面向過程語言相比,程序由類和對象組成。類是對客觀世界的抽象,包含數(shù)據(jù)和動作兩部分,對象由類創(chuàng)建。封裝、繼承和多態(tài)是面向?qū)ο蟪绦蛟O(shè)計語言的基本特征。在面向?qū)ο蟪绦蛟O(shè)計時,需要明確設(shè)定問題涉及的類類型,對于不同類進(jìn)行針對性的封裝和繼承,從而將問題中的對象轉(zhuǎn)變?yōu)槌绦蛑械膶ο?,使問題描述的概念與結(jié)構(gòu)和問題解決方案的結(jié)構(gòu)保持一致,便于軟件的開發(fā)和實現(xiàn)。同時對封裝處理方式進(jìn)行應(yīng)用,使編程效率得到顯著的提升,盡快實現(xiàn)編程目標(biāo)。在面向?qū)ο蟪绦蛟O(shè)計合理運用建模思想,使程序設(shè)計語言優(yōu)勢得以發(fā)揮,可以保證程序設(shè)計的規(guī)范性。算法優(yōu)化時,要充分發(fā)揮不同程序設(shè)計語言特點,靈活進(jìn)行設(shè)計,達(dá)到最優(yōu)效果。

4 結(jié)束語

軟件開發(fā)需要計算機(jī)編程才能得以實現(xiàn),而數(shù)學(xué)算法是計算機(jī)編程的核心,為軟件性能和可靠性提升提供充足的保證,使計算機(jī)編程得到有效的創(chuàng)新。在進(jìn)行計算機(jī)編程時,數(shù)學(xué)算法有時會起到?jīng)Q定作用,也是程序?qū)崿F(xiàn)功能的重要基礎(chǔ)。數(shù)學(xué)算法與計算機(jī)編程具有緊密的聯(lián)系,隨著計算機(jī)技術(shù)和數(shù)學(xué)的不斷融合創(chuàng)新,數(shù)學(xué)算法在新技術(shù)、新場景中的應(yīng)用將日益明顯。在軟件開發(fā)過程中,要充分利用數(shù)學(xué)算法建立模型,并進(jìn)行針對性的算法優(yōu)化,從而滿足不同任務(wù)的需要。

參考文獻(xiàn):

[1]姚玉閣,韓曉麗,數(shù)學(xué)算法對計算機(jī)編程優(yōu)化的研究[Jl.電子技術(shù)與軟件工程,2018,5(16):208-212.

[2]歐陽玉峰,周瑩瑩.數(shù)學(xué)算法對計算機(jī)編程優(yōu)化的研究[Jl.黑龍江科技信息,2018,9(6):146-148.

[3]曾鎮(zhèn)東,周宇飛,周鵬飛,數(shù)學(xué)算法對計算機(jī)編程優(yōu)化的分析與研究[Jl電腦知識與技術(shù),2018,12(21):245-246.

[4]汪海軍,王曉宇,朱艷芬.數(shù)學(xué)算法對計算機(jī)編程的優(yōu)化研究[J].電腦迷,2018,3(6):175-178.

【通聯(lián)編輯:李雅琪】

收稿日期:2019-12-25

作者簡介:殷華英(1976-),男,河北承德人,講師,碩士,研究方向為服務(wù)計算、大數(shù)據(jù)應(yīng)用;楊紅梅(1977-),女(滿族),河北承德人,講師,碩士,研究方向為數(shù)學(xué)教育。

猜你喜歡
建模優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
聯(lián)想等效,拓展建?!浴皫щ娦∏蛟诘刃鲋凶鰣A周運動”為例
基于PSS/E的風(fēng)電場建模與動態(tài)分析
不對稱半橋變換器的建模與仿真
IDEF3和DSM在拆裝過程建模中的應(yīng)用
三元組輻射場的建模與仿真
达孜县| 台安县| 湟中县| 越西县| 静乐县| 巴东县| 永清县| 江永县| 横山县| 滦南县| 萝北县| 齐河县| 九寨沟县| 马龙县| 佛学| 曲周县| 香港| 新巴尔虎左旗| 济源市| 河津市| 威远县| 丹江口市| 同江市| 英超| 桂东县| 临城县| 信阳市| 梨树县| 陇川县| 阜南县| 呈贡县| 黄骅市| 札达县| 长海县| 株洲市| 麟游县| 航空| 手游| 乐业县| 年辖:市辖区| 贵定县|