崔新雨
北京道達(dá)天際科技有限公司 北京 100089
數(shù)學(xué)學(xué)科在計(jì)算機(jī)編程領(lǐng)域的地位是很重要的,編程的本質(zhì)就是通過(guò)多種邏輯關(guān)系的構(gòu)建對(duì)一個(gè)復(fù)雜的工作進(jìn)行分解。數(shù)學(xué)算法的高效利用能夠讓計(jì)算機(jī)編程工作高效和簡(jiǎn)單,也能對(duì)現(xiàn)有策略達(dá)到優(yōu)化的作用。
計(jì)算機(jī)及其相關(guān)技術(shù)的快速發(fā)展是在21世紀(jì)初,計(jì)算機(jī)的從業(yè)人員也開(kāi)始重視起程序的開(kāi)發(fā)工作。通過(guò)計(jì)算器編程,能夠?yàn)槿颂峁┯辛Φ纳a(chǎn)力工具,為了實(shí)現(xiàn)多種需求,對(duì)于數(shù)學(xué)邏輯的重視程度和依賴性也在不斷加深。數(shù)學(xué)思想除了基本的運(yùn)算原則之外,還有建模思想和邏輯思想,通過(guò)對(duì)一個(gè)事件建立模型,然后逐層分析內(nèi)部邏輯關(guān)系,得到所有的可能路線和結(jié)果,再把這些關(guān)系用計(jì)算機(jī)語(yǔ)言輸入,就能將這個(gè)事件轉(zhuǎn)化為計(jì)算機(jī)程序。
在計(jì)算機(jī)編程的研究過(guò)程當(dāng)中,人們發(fā)現(xiàn)使用數(shù)學(xué)思想能夠?qū)?fù)雜的事情簡(jiǎn)單化,把所有的工作簡(jiǎn)化為數(shù)學(xué)模型當(dāng)中的一部分,然后再利用數(shù)學(xué)符號(hào)和語(yǔ)言,將上述工作串聯(lián)起來(lái)或進(jìn)行運(yùn)算,這樣就能夠?qū)崿F(xiàn)所有工作。按照這個(gè)思想,計(jì)算機(jī)編程從業(yè)人員,對(duì)數(shù)學(xué)建模與計(jì)算機(jī)編程進(jìn)行深入的使用研究,在大大提高計(jì)算機(jī)編程效率的同時(shí),還降低了其入門(mén)門(mén)檻和難度。
數(shù)學(xué)模型思想本質(zhì)是一類歸納算法,把一個(gè)事件分解成若干個(gè)獨(dú)立的小事件,并通過(guò)數(shù)學(xué)符號(hào)、選擇、運(yùn)算邏輯等將所有小事件串聯(lián)起來(lái)即可實(shí)現(xiàn)功能。通過(guò)數(shù)學(xué)模型思想進(jìn)行計(jì)算機(jī)編程,能夠提高工作效率,而且使工作量減少,避免不必要的邏輯判斷。
數(shù)學(xué)模型思想是需要不斷優(yōu)化的,解決同一問(wèn)題,有無(wú)數(shù)種不同的數(shù)學(xué)邏輯思路,但最優(yōu)的往往只有一種。對(duì)于同一時(shí)間使用不同的邏輯,可能工作量運(yùn)算效率都不一樣,雖然能達(dá)到一致的結(jié)果實(shí)現(xiàn)需求,但對(duì)于大型程序來(lái)說(shuō),如果內(nèi)部事件之間的邏輯關(guān)系都不是最優(yōu)解,最終程序完成之后,可能出現(xiàn)運(yùn)行緩慢的問(wèn)題,在程序運(yùn)行的過(guò)程中,也會(huì)有很多無(wú)用工作,后期對(duì)該程序進(jìn)行維護(hù)和修改時(shí)也會(huì)加大工作量。
在現(xiàn)代的計(jì)算機(jī)編程工作中,編程的基本語(yǔ)言和編譯器已經(jīng)發(fā)展趨于成熟,故在計(jì)算機(jī)編程算法的優(yōu)化工作中,對(duì)于邏輯考究和優(yōu)化是十分必要的。能夠?qū)崿F(xiàn)程序需求的前提下,數(shù)學(xué)算法越是趨于簡(jiǎn)單和清晰就越貼合人們的優(yōu)化需求。優(yōu)化起到的作用是錦上添花,對(duì)于同一事件同一程序的優(yōu)化工作而言,也沒(méi)有唯一的標(biāo)準(zhǔn)答案。
2.1 計(jì)算機(jī)語(yǔ)言結(jié)合數(shù)學(xué)算法 隨著計(jì)算機(jī)編程學(xué)科的發(fā)展,已經(jīng)有多種計(jì)算機(jī)語(yǔ)言被普及和使用。本部分以C語(yǔ)言為例來(lái)簡(jiǎn)要說(shuō)明如何運(yùn)用數(shù)學(xué)算法優(yōu)化現(xiàn)有計(jì)算機(jī)語(yǔ)言。C語(yǔ)言是較為基礎(chǔ)的計(jì)算機(jī)編程語(yǔ)言,也是大部分從業(yè)者接觸到的第一種計(jì)算機(jī)編程語(yǔ)言。C語(yǔ)言的使用是很廣泛的,其下限較低,上限很高,能夠?qū)崿F(xiàn)諸多功能,目前流行的很多應(yīng)用程序使用的基礎(chǔ)語(yǔ)言也是C語(yǔ)言,描述和編寫(xiě)方式也是其他計(jì)算機(jī)語(yǔ)言的基礎(chǔ)。
在使用C語(yǔ)言進(jìn)行編程的過(guò)程中,大部分從業(yè)者都會(huì)遇到編譯工作的困難,因其編譯的容錯(cuò)率很低,自身也有很大的局限性,在編寫(xiě)時(shí)必須按照嚴(yán)格的代碼邏輯進(jìn)行輸入。雖會(huì)對(duì)編譯工作造成困難,但C語(yǔ)言的嚴(yán)格性也是其優(yōu)勢(shì)之一,能夠避免很多邏輯性錯(cuò)誤從而造成程序不運(yùn)行。
通過(guò)使用數(shù)學(xué)算法,可對(duì)C語(yǔ)言進(jìn)行優(yōu)化,在保留其基本優(yōu)勢(shì)的前提下,還能優(yōu)化局限性。在進(jìn)行編程之前,使用數(shù)學(xué)模型和算法先對(duì)整個(gè)事件進(jìn)行邏輯分析,然后設(shè)計(jì)一相應(yīng)的流程圖,將事件中的小事件拆解連接之后再用C語(yǔ)言進(jìn)行編寫(xiě)即可。對(duì)數(shù)學(xué)算法的合理運(yùn)用能夠減少邏輯錯(cuò)誤,讓代碼精簡(jiǎn),從而簡(jiǎn)化整個(gè)程序的內(nèi)容,便于運(yùn)行和后期維護(hù)。
數(shù)學(xué)算法具有很強(qiáng)的抽象性,多種不同的工作經(jīng)過(guò)歸納和總結(jié),其數(shù)學(xué)算法也可能是類似的。在編寫(xiě)程序的時(shí)候,可以將不同事件中的相同算法先行編寫(xiě)出來(lái),然后在不同的事件中加以運(yùn)用即可。這樣最后編寫(xiě)的程序能夠減少冗余,避免多次進(jìn)行重復(fù)工作。
將數(shù)學(xué)算法與計(jì)算機(jī)編程語(yǔ)言結(jié)合的過(guò)程中,并不能單純的追求簡(jiǎn)單化,也要注意邏輯代碼的可讀性和易修改性。如果僅僅追求代碼簡(jiǎn)單而建立了很多復(fù)雜的函數(shù),雖然能夠?qū)崿F(xiàn)目標(biāo)功能,達(dá)到開(kāi)發(fā)需求,且縮短代碼長(zhǎng)度,但可能不利于程序的維護(hù)與修改,這種方式也不是值得提倡的。
2.2 對(duì)象結(jié)合數(shù)學(xué)算法優(yōu)化 在編程的過(guò)程中,需要頻繁進(jìn)行引用或展示的信息、圖片、鏈接等通常被稱作對(duì)象。一個(gè)正常的程序其所用到的對(duì)象是很多的,如果不加以分類整理,在編程的過(guò)程中就會(huì)增加很大工作量。在該程序上線運(yùn)行之后,維護(hù)人員也需要花費(fèi)大量時(shí)間和精力去探究對(duì)象和程序之間的對(duì)應(yīng)關(guān)系。在此背景和需求下,可以引入數(shù)學(xué)中類、集合等思想。
在編程工作開(kāi)始之前,可以將用到的對(duì)象進(jìn)行分類,并在不同的類之間建立邏輯關(guān)系,進(jìn)行繼承、嵌套和封裝等。在編程工作中,若需要引用對(duì)象,可先明確對(duì)象所屬的類,然后再進(jìn)行引用。如:某游戲程序要求在用戶按下回車鍵之后播放第4段視頻,若不引入類和集合的思想,在編程時(shí)就需要花費(fèi)查找到引用對(duì)象然后寫(xiě)入程序,計(jì)算機(jī)在運(yùn)行的過(guò)程中也需要打開(kāi)數(shù)以萬(wàn)計(jì)的對(duì)象,然后尋找“第4段視頻”,會(huì)造成程序運(yùn)行緩慢,后期維護(hù)人員需要對(duì)“第4段視頻”也同樣面臨該困擾。若使用類的觀念,將程序?qū)⒁玫膶?duì)象全部分類,可將“第4段視頻”歸納為“游戲第一章——過(guò)場(chǎng)動(dòng)畫(huà)——高畫(huà)質(zhì)——第4段視頻”,不僅能夠提高編寫(xiě)時(shí)的效率,在其他人查看此段代碼時(shí),也能明確每個(gè)對(duì)象的意義和用途,便于維護(hù)。
上文僅進(jìn)行最簡(jiǎn)單的邏輯舉例,在實(shí)際編程工作中,所涉及到的對(duì)象和邏輯關(guān)系是十分復(fù)雜的,計(jì)算機(jī)可能同時(shí)處理上萬(wàn)條上述邏輯關(guān)系以保障程序運(yùn)行。當(dāng)代碼量大,程序復(fù)雜,數(shù)據(jù)量多時(shí),對(duì)對(duì)象用數(shù)學(xué)算法進(jìn)行優(yōu)化是很有必要的。
編程工作的原理并不復(fù)雜,其本質(zhì)就是將事件地之間的關(guān)系及動(dòng)作用計(jì)算機(jī)語(yǔ)言編寫(xiě)出來(lái),但實(shí)際過(guò)程中,因需求復(fù)雜、數(shù)據(jù)量大、邏輯繁復(fù)等原因,編程工作所面臨的挑戰(zhàn)是很多的。通過(guò)數(shù)學(xué)思想中的模型建立、邏輯關(guān)系歸納、分類和整合等策略,能夠?qū)τ?jì)算機(jī)編程進(jìn)行有效優(yōu)化,結(jié)合數(shù)學(xué)思想對(duì)計(jì)算機(jī)編程優(yōu)化的策略能夠提高編程工作的策略和準(zhǔn)確性。