張展遨
摘 要 數(shù)學(xué)算法是數(shù)學(xué)課程中一個(gè)很重要的組成部分,很多數(shù)學(xué)解答的過(guò)程中都會(huì)用到相關(guān)的數(shù)學(xué)算法。我們?cè)诤?jiǎn)化數(shù)學(xué)算法的計(jì)算過(guò)程中,還能得出一些規(guī)律,這些規(guī)律不僅僅對(duì)于數(shù)學(xué)領(lǐng)域,還有其他領(lǐng)域尤其是計(jì)算機(jī)編程技術(shù)有著重要影響。本文從高中生的角度來(lái)闡明數(shù)學(xué)算法在計(jì)算機(jī)編程技術(shù)中的作用及其優(yōu)化問(wèn)題。
【關(guān)鍵詞】數(shù)學(xué)算法 優(yōu)化 計(jì)算機(jī)編程
現(xiàn)在社會(huì)的發(fā)展非常迅速,計(jì)算機(jī)技術(shù)相應(yīng)的也變得的發(fā)達(dá),方便了我們的生活。計(jì)算機(jī)技術(shù)的核心基礎(chǔ)就是計(jì)算機(jī)軟件的開(kāi)發(fā),然而軟件編程的基礎(chǔ)就是數(shù)學(xué)算法。所以,我們可以通過(guò)數(shù)學(xué)算法不斷的優(yōu)化編程技術(shù),讓軟件應(yīng)用更加人性化、更加具有廣泛性,同時(shí)也應(yīng)用到我們社會(huì)生活的方方面面。
1 數(shù)學(xué)算法及計(jì)算機(jī)編程的概述
數(shù)學(xué)中的算法是數(shù)學(xué)研究中的最基礎(chǔ)也是最關(guān)鍵的一個(gè)部分,對(duì)于其他的領(lǐng)域的影響也同樣也很大,尤其是對(duì)于計(jì)算機(jī)編程方面的研究。現(xiàn)代信息技術(shù)在迅猛發(fā)展與創(chuàng)新的同時(shí),計(jì)算機(jī)編程同樣也受到了數(shù)學(xué)算法很大的影響,對(duì)于計(jì)算機(jī)編程技術(shù)人員來(lái)說(shuō),應(yīng)該具備的素養(yǎng)就是對(duì)數(shù)學(xué)算法知識(shí)有很深刻的研究,因此數(shù)學(xué)算法在計(jì)算機(jī)編程中占據(jù)著重要因素。
2 數(shù)學(xué)算法在計(jì)算機(jī)編程中的作用
2.1 數(shù)學(xué)算法是計(jì)算機(jī)編程的基礎(chǔ)
對(duì)于一個(gè)實(shí)際問(wèn)題,假如我們想要使用計(jì)算機(jī)去分析,那么我們首先就要生成一個(gè)數(shù)學(xué)模型,把這個(gè)事情的整體輪廓先表達(dá)出來(lái),緊接著就是對(duì)這個(gè)模型進(jìn)行相應(yīng)的分析、編程、計(jì)算以及測(cè)試,這樣這件事情才能通過(guò)計(jì)算機(jī)程序來(lái)得到解決。我們從這幾個(gè)步驟中,可以看到數(shù)學(xué)算法和計(jì)算機(jī)編程的聯(lián)系,我們只有將這兩樣?xùn)|西緊密結(jié)合起來(lái)才能高效解決的生活中的實(shí)際問(wèn)題。
2.2 數(shù)學(xué)算法使計(jì)算機(jī)編程簡(jiǎn)單化
在解決實(shí)際問(wèn)題時(shí)往往會(huì)比較復(fù)雜,因此就需要建立數(shù)學(xué)模式來(lái)使復(fù)雜問(wèn)題更加簡(jiǎn)單化,我們的編程程序需要靠數(shù)學(xué)算法來(lái)優(yōu)化。研究數(shù)學(xué)算法的主要目的是要問(wèn)題得到優(yōu)化,這樣我們就需要研究計(jì)算機(jī)編程中的數(shù)學(xué)算法,使數(shù)學(xué)算法得到改進(jìn)和提高,進(jìn)而提高數(shù)學(xué)算法在編程中的優(yōu)化能力。對(duì)于計(jì)算機(jī)理論知識(shí)可分為計(jì)算機(jī)理論、數(shù)學(xué)算法理論等等,它們之間并不是相互孤立的,而是統(tǒng)一的,所以對(duì)于計(jì)算機(jī)今后的發(fā)展才會(huì)有本質(zhì)上的突破。
3 數(shù)學(xué)算法可以優(yōu)化計(jì)算機(jī)編程
3.1 計(jì)算機(jī)編程應(yīng)用數(shù)學(xué)算法優(yōu)化的簡(jiǎn)單分析
計(jì)算機(jī)編程是計(jì)算機(jī)技術(shù)中最為核心也最為專業(yè)的一個(gè)組成部分,它是以計(jì)算機(jī)語(yǔ)言程序?yàn)榛A(chǔ)上而產(chǎn)生的。計(jì)算機(jī)編程是通過(guò)編程來(lái)實(shí)現(xiàn)實(shí)際的操作的。接下來(lái)我們來(lái)說(shuō)說(shuō)數(shù)學(xué)算法與編程優(yōu)化它們之間的關(guān)系。我們知道計(jì)算機(jī)語(yǔ)言中應(yīng)用最廣泛的語(yǔ)言就是C語(yǔ)言,它是很多的語(yǔ)言進(jìn)一步發(fā)展的前提條件。重復(fù)編譯是用C語(yǔ)言編程中最容易出現(xiàn)的錯(cuò)誤,由于C語(yǔ)言更加重視代碼邏輯的運(yùn)行過(guò)程,因此在用C語(yǔ)言進(jìn)行編寫程序語(yǔ)言時(shí)局限性是非常大的。因而,我們?cè)诰帉懗绦蜻^(guò)程中要用數(shù)學(xué)算法對(duì)計(jì)算機(jī)編程進(jìn)行優(yōu)化。在編程時(shí)最重要的一點(diǎn)是要加入數(shù)學(xué)算法的思想,使程序不斷的得到簡(jiǎn)化,從而使計(jì)算機(jī)編程得到優(yōu)化,這樣就更好的提高解決問(wèn)題的效率。
3.2 計(jì)算機(jī)編程應(yīng)用數(shù)學(xué)算法優(yōu)化的相關(guān)實(shí)例
我們要解決的例子:1×2×3×4×……×n計(jì)算到最終我們獲得的結(jié)果中末尾有多少個(gè)0?(N是小于10000大于1000的數(shù))也就是:假設(shè)把n分成 b×10x的形式,在這其中b是不可以被10整除的數(shù),這個(gè)時(shí)候x的值是多少?
對(duì)于這個(gè)問(wèn)題,如果用計(jì)算機(jī)進(jìn)行計(jì)算那速度就會(huì)比較快了,一般情況下都要優(yōu)先思考的是計(jì)算出1×2×3×……×n的結(jié)果,之后再去數(shù)后面0的個(gè)數(shù),但是我們要注意長(zhǎng)整型只可以表示出十位有效數(shù),然而,這個(gè)地方n的取值在1000至10000之間,那么我們就要思考計(jì)算機(jī)是否可以表示出呢?很明顯這種方法是行不通的.因此我們要用一個(gè)可行的最優(yōu)數(shù)學(xué)算法對(duì)這個(gè)問(wèn)題求解。
根據(jù)題意分析可以了解到,要想知道計(jì)算出結(jié)果末尾有多少個(gè)0,我們可以先計(jì)算出5的個(gè)數(shù),只要計(jì)算出5的個(gè)數(shù)就可以得到0的個(gè)數(shù),所以可以把5設(shè)為步長(zhǎng),進(jìn)行第一次的循環(huán)計(jì)算,接著算出5的個(gè)數(shù),通過(guò)計(jì)算我們可以看到,把之前的10、15、20…變成1、2、3…再以5 2次方設(shè)為步長(zhǎng),接著進(jìn)行第二次循環(huán)計(jì)算,算出包含52有多少個(gè)。在第一次計(jì)算后,25、50、75…這些數(shù)變成了5、10、15… ,接著通過(guò)第二次循環(huán)計(jì)算后就變成了1、2、3…,接著把53設(shè)為步長(zhǎng)。以此來(lái)推,當(dāng)步長(zhǎng)大于或者等于n時(shí)終止循環(huán)計(jì)算,最終我們獲得的結(jié)果就是每一次循環(huán)計(jì)算出的5的各次方數(shù)的個(gè)數(shù)之和。
C++計(jì)算機(jī)程序如下:
long num,i,n;
cout <<”please input n:”< cin>>n; i =n; n um=0; while(i>=5) { i=i/5; num+ =i; } Cou t<< ” 1*2*3*4*… *”<< n << endl; Cout << ” the number of 0 is”<< sum < < e n d l ; 當(dāng)我們?nèi)值為100時(shí),此方法需要外循環(huán)的次數(shù)為3次。所以說(shuō)數(shù)學(xué)算法對(duì)計(jì)算機(jī)編程具有很大的影響,可以這樣說(shuō)它直接關(guān)系到計(jì)算機(jī)編程質(zhì)量的優(yōu)劣。 4 結(jié)語(yǔ) 數(shù)學(xué)算法為計(jì)算機(jī)的進(jìn)步奠定了基礎(chǔ),計(jì)算機(jī)的進(jìn)步反作用于數(shù)學(xué)算法的研究,因此計(jì)算機(jī)與數(shù)學(xué)算法關(guān)系緊密相連。隨著計(jì)算機(jī)技術(shù)這一行業(yè)的迅猛發(fā)展,數(shù)學(xué)算法也跟著有了飛速進(jìn)步,研究者也在一直研究著計(jì)算機(jī)編程與數(shù)學(xué)算法它們之間的聯(lián)系。但現(xiàn)在的算法體系還是難以擺脫馮·諾依曼有關(guān)計(jì)算機(jī)體系結(jié)構(gòu),所以我們還是需要繼續(xù)加倍努力,讓計(jì)算機(jī)體系得到新的發(fā)展。 參考文獻(xiàn) [1]歐陽(yáng)玉峰.數(shù)學(xué)算法對(duì)計(jì)算機(jī)編程優(yōu)化的研究[J].黑龍江科技信息,2016(06). [2]余殷博.數(shù)學(xué)算法對(duì)計(jì)算機(jī)編程優(yōu)化的思考[J].電子技術(shù)與軟件工程,2016(02). [3]李文舉.探討數(shù)學(xué)算法對(duì)計(jì)算機(jī)編程的優(yōu)化作用[J].電子技術(shù)與軟件工程,2016(01). 作者單位 大連市第二十四中學(xué) 遼寧省大連市 116001