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

?

數(shù)學(xué)算法對計(jì)算機(jī)編程優(yōu)化研究

2018-04-24 05:01袁海根
無線互聯(lián)科技 2018年4期
關(guān)鍵詞:數(shù)學(xué)模型優(yōu)化

袁海根

摘 要:計(jì)算機(jī)編程與數(shù)學(xué)算法有直接的關(guān)系,通過數(shù)學(xué)理論、數(shù)學(xué)算法構(gòu)建合適的數(shù)學(xué)模型,使不同的類能夠轉(zhuǎn)化為統(tǒng)一的數(shù)學(xué)模型,不斷優(yōu)化該數(shù)學(xué)模型的算法,設(shè)計(jì)合理的編程邏輯,通過邏輯繼承解決復(fù)雜的問題,能夠最大限度優(yōu)化計(jì)算機(jī)編程,提高編程效率和程序運(yùn)行效率。文章研究了數(shù)學(xué)算法對計(jì)算機(jī)編程的優(yōu)化。

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

數(shù)學(xué)算法是一種以數(shù)學(xué)模型為基礎(chǔ)的理論知識,能夠?qū)τ?jì)算機(jī)編程中的問題進(jìn)行歸納總結(jié)和統(tǒng)一計(jì)算,以提高邏輯應(yīng)用的效率,它是計(jì)算機(jī)編程的基礎(chǔ)。計(jì)算機(jī)編程是從數(shù)學(xué)模型開始的,首先要根據(jù)具體問題進(jìn)行抽象,以建立一個(gè)合理的數(shù)學(xué)模型,根據(jù)此模型設(shè)計(jì)一個(gè)算法,最后進(jìn)行編程與調(diào)試,直至獲得最終的正確解答,通過算法和數(shù)據(jù)結(jié)構(gòu)組成了一個(gè)計(jì)算機(jī)程序。數(shù)學(xué)算法是對數(shù)學(xué)模型的計(jì)算,選擇何種算法解決數(shù)學(xué)模型,直接關(guān)系到基于數(shù)學(xué)模型而建立的程序是否更為高效而準(zhǔn)確,數(shù)學(xué)算法是優(yōu)化計(jì)算機(jī)編程的關(guān)鍵環(huán)節(jié)[1]。

1 數(shù)學(xué)算法的含義

數(shù)學(xué)算法是一種歸納算法,在嚴(yán)格遵循相應(yīng)數(shù)學(xué)原則與步驟的基礎(chǔ)上,計(jì)算工作量,通過挖掘數(shù)學(xué)模型的規(guī)律,以最小的代價(jià)、最少的計(jì)算工作量、最快速的方法獲得準(zhǔn)確的結(jié)果。其根本思想在于研究并總結(jié)事物規(guī)律,最大限度減少工作量。計(jì)算機(jī)編程可以利用數(shù)學(xué)建模的思想,通過數(shù)學(xué)算法的選擇以達(dá)到優(yōu)化編程的目的,也可以通過數(shù)學(xué)算法精簡代碼程序來優(yōu)化編程,提高程序運(yùn)行效率[2]。

2 數(shù)學(xué)算法對于計(jì)算機(jī)編程的優(yōu)化

2.1 運(yùn)用數(shù)學(xué)算法簡化C語言編程

C語言是計(jì)算機(jī)編程語言的基礎(chǔ),有廣泛的應(yīng)用范圍,也是計(jì)算機(jī)高級編程語言的擴(kuò)展基礎(chǔ),重復(fù)編譯是C語言編程中的一個(gè)多發(fā)性問題,由于C語言是一種過程性程序語言,編程時(shí),需要著重考慮代碼邏輯運(yùn)行過程的問題,但在編譯時(shí),會受自身性質(zhì)的局限。數(shù)學(xué)算法能夠?qū)@一邏輯局限進(jìn)行優(yōu)化。通過數(shù)學(xué)算法對代碼進(jìn)行精簡,達(dá)到精簡代碼程度的目的,進(jìn)而提高過程中的效率。在算法編程前,邏輯分析是首要的工作,分析程序設(shè)計(jì)流程圖,以體現(xiàn)程序運(yùn)行的邏輯。如在C語言編程中,設(shè)計(jì)計(jì)算機(jī)的閏年程序是一個(gè)有代表性的編程工作,閏年包括了兩個(gè)判斷標(biāo)準(zhǔn),即一年有366天或者2月份有29天。在指定一個(gè)年份時(shí),要如何直接得知這個(gè)年份是否為閏年,就可以通過編譯代碼程序的形式來實(shí)現(xiàn),并且需要運(yùn)用數(shù)學(xué)算法來優(yōu)化這一代碼程序。數(shù)學(xué)算法中,不能被100整除而能夠被4整除的數(shù)字就代表是閏年年份,也可以是100或400的倍數(shù),對閏年的相應(yīng)數(shù)學(xué)算法進(jìn)行歸類,直接編寫為一個(gè)程序,以判斷是否為閏年。在C語言編程中,數(shù)學(xué)算法能夠?qū)⒕幊陶Z言流程簡化,利用數(shù)學(xué)算法的歸納、抽象思想將流程簡單化,使這種面向過程的語言能夠避免重復(fù)編譯,防止時(shí)間冗余[3]。

2.2 引入數(shù)學(xué)模型思想優(yōu)化面向?qū)ο笳Z言的編程

面向?qū)ο笳Z言即C++語言,這是一種基于C語言發(fā)展而來的編程語言。面向?qū)ο蟪绦虻脑O(shè)計(jì)語言是對對象進(jìn)行封裝,轉(zhuǎn)變C語言在面向過程設(shè)計(jì)時(shí)的語言弊端,提高計(jì)算機(jī)編程效率的一種語言方式。這種語言利用了類模仿,并將封裝原理融入其中,進(jìn)一步提高了編程效率,類的繼承與對象的封裝都可以通過數(shù)學(xué)算法優(yōu)化,以優(yōu)化編程效率。設(shè)計(jì)面向?qū)ο蟮某绦驎r(shí),需要定義類、不同類的嵌套、封裝和繼承,當(dāng)程序涉及繼承處理時(shí),會使編程工作量變得極為龐大。數(shù)學(xué)算法中建模思想則為精簡工作量提供了有效的途徑,利用數(shù)學(xué)模型進(jìn)行統(tǒng)一計(jì)算,以解決問題。建立數(shù)學(xué)模型就能夠?qū)⒉煌念愐越y(tǒng)一模型來分類,再利用邏輯繼承完成不同模型之間的程序設(shè)計(jì),既優(yōu)化了編程效率,又提高了程序?qū)嵭訹4]。

3 數(shù)學(xué)建模與數(shù)學(xué)算法在優(yōu)化高級語言編程時(shí)的應(yīng)用

3.1 數(shù)學(xué)算法在優(yōu)化計(jì)算機(jī)編程時(shí)的意義

在編寫一個(gè)高級語言程序時(shí),為減少運(yùn)行消耗的時(shí)間,需要考慮幾個(gè)問題:數(shù)學(xué)算法選擇的策略、問題的規(guī)模、程序編譯時(shí)生成的計(jì)算機(jī)代碼質(zhì)量、計(jì)算機(jī)執(zhí)行指令時(shí)的速度。編譯程序不同、計(jì)算機(jī)不同,都會影響到程序運(yùn)行效率,因此,程序效率是無法用絕對時(shí)間單位來衡量的。除了程序運(yùn)行相關(guān)的計(jì)算機(jī)軟硬件等客觀因素外,選擇的算法就成了影響程序運(yùn)行工作量的最大決定因素,通過優(yōu)化算法達(dá)到減少程序運(yùn)行時(shí)間、提高程序執(zhí)行效率的目的,是一種適用性更高的方法。因此,數(shù)學(xué)算法是編程優(yōu)化的關(guān)鍵步驟,為提高程序效率,必須選擇合適的算法。評價(jià)一個(gè)算法的質(zhì)量需要考慮到時(shí)間復(fù)雜性與空間復(fù)雜性,一個(gè)問題有多種算法,在選擇算法時(shí),首要考慮的是算法效率,基于算法效率再精簡程序,使算法能夠和程序有效結(jié)合,找出程序簡單化與算法合理化之間的最大平衡,尋找最優(yōu)算法,確保程序中的算法能夠滿足實(shí)際運(yùn)算的目的[5]。

3.2 利用數(shù)學(xué)算法優(yōu)化計(jì)算機(jī)編程的實(shí)例

如,要解決如下問題:1×2×3×……×n(1 000

首先,可以直接從1到n相乘,每次乘完觀察一次結(jié)果數(shù),將結(jié)果數(shù)后面的0全部去掉,并計(jì)下這些被去掉的0的個(gè)數(shù),因?yàn)橹磺蠛竺娴?的個(gè)數(shù),而不必考慮前面的數(shù)值,可以把前面和0沒有關(guān)系的數(shù)字全部省略掉,保留所有有效數(shù)字,再相乘n次就能夠得出0的個(gè)數(shù)。根據(jù)這種算法編寫核心代碼即可進(jìn)行運(yùn)算,這種算法能夠解決問題,但可以看出,需要運(yùn)算的次數(shù)很多,且這個(gè)乘法數(shù)列中,有很多數(shù)字無法生成0,因此,可以直接不考慮這些數(shù)字,而直接考慮會對0的生成個(gè)數(shù)產(chǎn)生影響的2與5的倍數(shù),可以看出,這種算法并非最優(yōu)化算法。

其次,根據(jù)第一種算法中的分析可以得出,1~9的所有位數(shù)中只有包含2×5、4×5、6×5、8×5這幾個(gè)算式的能夠生成0,因此,對0的計(jì)算個(gè)數(shù)能夠產(chǎn)生的影響的只有5的倍數(shù),含有2的分解數(shù)多于含有5的分解數(shù),為簡化程序,可以直接考慮這個(gè)數(shù)列中能夠分解出多少個(gè)5,就代表能夠產(chǎn)生多少個(gè)0,以這種算法編寫程序較第一種算法減少了80%,較前一種算法更為優(yōu)化,但從這一種算法的分析可以進(jìn)一步觀察,該數(shù)列中包含的5的個(gè)數(shù)就是相乘后結(jié)果末尾0的個(gè)數(shù),因此,仍然可以繼續(xù)對算法進(jìn)行優(yōu)化。

再次,直接求解含5的個(gè)數(shù)即可求解0的個(gè)數(shù),采取層層剝皮法,第一次剝皮以5為步長作一次循環(huán),即可求得含5的個(gè)數(shù),這樣就能將數(shù)列從5,10,15,……變?yōu)?,2,3,4,……。第二次剝皮以52為步長作二次循環(huán),求解含有52的個(gè)數(shù),將15,20,75,100,……通過一次剝皮變?yōu)?,10,15,20,……,再通過二次剝皮變成1,2,3,4,……。第三次剝皮則以53為步長作二次循環(huán),求解含有53的個(gè)數(shù),直至步長≥n時(shí),就可以退出循環(huán),將包含有5的方數(shù)的個(gè)數(shù)相加,就是0的個(gè)數(shù)。這種算法也就是最優(yōu)算法,根據(jù)該算法編譯核心程序如下:

Long num,i,n;

cout<<”please input n:”<

cin>>n;

i=n;

num=0;

while(i>=5)

{

I=i/5;

num+=I;

}

cout<<”1*2*3*4*…*”<

cout<<”the number of 0 is”<

<

這3種算法每一次均有一定的優(yōu)化,第一種方法需要100次外循環(huán)求解,而第二種方法則僅需要20次,第一種方法則僅為3次循環(huán),只需要一層循環(huán)就能夠求解,充分表明數(shù)學(xué)算法對于編程優(yōu)化和程序運(yùn)行效率的重要性[6]。

3.3 重視數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),減少算法的空間復(fù)雜度

數(shù)學(xué)算法效率的提高與數(shù)據(jù)結(jié)構(gòu)的合理性有重要的作用,能夠提高算法對于變量訪問的效率,降低變量所需存儲空間。如,在稀疏矩陣中,當(dāng)矩陣中存在過多元素時(shí),就可以通過壓縮矩陣存儲空間來提高算法效率,利用行號、列號和元素三元組存儲矩陣,能夠大量壓縮存儲空間,避免二元組存儲時(shí)對于矩陣中零元素的多余存儲,并且能夠在遍歷矩陣時(shí),降低遍歷次數(shù),算法將更為高效。還可以通過變量共享和聯(lián)合體等方式,多個(gè)變量就能夠共享同一段存儲空間,這樣就大大減少了算法的空間復(fù)雜度,依次編譯程度,將會使程序運(yùn)算更為高效,空間占用更為簡單[7]。

4 結(jié)語

計(jì)算機(jī)的學(xué)習(xí)離不開數(shù)學(xué)理論與知識的學(xué)習(xí)和運(yùn)用,當(dāng)編程人員受限于計(jì)算機(jī)軟硬件等客觀條件限制時(shí),要提高程序運(yùn)行效率,就可以通過優(yōu)化數(shù)學(xué)算法來優(yōu)化編程,能夠以很小的代價(jià)提高程序運(yùn)行效率。通過數(shù)學(xué)模型的建立,利用數(shù)學(xué)算法對編程邏輯進(jìn)行分析設(shè)計(jì),不斷優(yōu)化數(shù)學(xué)算法,降低其時(shí)間復(fù)雜度、空間復(fù)雜度,最大限度解決重復(fù)編譯的情況,提高編程效率。

[參考文獻(xiàn)]

[1]方建衛(wèi),何靜.數(shù)學(xué)算法對計(jì)算機(jī)編程優(yōu)化的分析與研究[J].赤峰學(xué)院學(xué)報(bào),2014(21):84.

[2]韓頂軍.數(shù)學(xué)算法對計(jì)算機(jī)編程優(yōu)化的分析與研究[J].電子制作,2014(24):84.

[3]魏連秋.數(shù)學(xué)算法對計(jì)算機(jī)編程優(yōu)化的分析與研究[J].科技創(chuàng)新導(dǎo)報(bào),2010(30):3-4.

[4]姚玉閣.數(shù)學(xué)算法對計(jì)算機(jī)編程優(yōu)化的研究[J].電子技術(shù)與軟件工程,2013(16):208.

[5]曾鎮(zhèn)東.數(shù)學(xué)算法對計(jì)算機(jī)編程優(yōu)化的分析與研究[J].電腦知識與技術(shù)(學(xué)術(shù)交流),2016(7X):245-246.

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

[7]葉文婷.數(shù)學(xué)算法對計(jì)算機(jī)編程的優(yōu)化[J].通訊世界,2015(9):234-235.

猜你喜歡
數(shù)學(xué)模型優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
AHP法短跑數(shù)學(xué)模型分析
活用數(shù)學(xué)模型,理解排列組合
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
基于電力機(jī)器人控制系統(tǒng)的數(shù)學(xué)模型簡述
對一個(gè)數(shù)學(xué)模型的思考
古塔形變的數(shù)學(xué)模型
考慮水包油乳狀液的復(fù)合驅(qū)數(shù)學(xué)模型
贵溪市| 彝良县| 南和县| 东乡族自治县| 逊克县| 扎鲁特旗| 特克斯县| 吉隆县| 宿松县| 来宾市| 庆安县| 芷江| 连城县| 桃源县| 岚皋县| 永嘉县| 正安县| 伊宁市| 临猗县| 河南省| 南宁市| 封开县| 自贡市| 资源县| 长海县| 弥渡县| 邹城市| 镶黄旗| 华亭县| 冕宁县| 伊金霍洛旗| 区。| 高清| 五大连池市| 宝鸡市| 湘潭市| 永登县| 张家港市| 舞钢市| 开封县| 霍山县|