本溪廣播電視大學 熊 慧
隨著現代信息技術的發展,計算機軟件技術已經普遍應用于人們工作、生活和學習的方方面面。對于計算機軟件來說,它的出現為人們的生活提供了便利,然而,對于功能相似的軟件來說,其受歡迎程度存在較大差異,導致這一問題的主要原因在于不同軟件之間的數學算法存在區別。數學算法是一種理論模型架構,通過理論模型的設計來實現較高的邏輯效率,在計算機軟件編程設計過程中,數學算法的合理使用,能夠實現計算機編程的優化,使軟件的邏輯性和適用性得到提高。
在使用計算機解決現實問題的過程中,需要考慮幾個方面的問題,首先,當前面對的問題所適用的數學模型,并根據與之相適應的數學模型確定數學算法;其次,在數學算法的指導下,利用計算機編程軟件進行程序設計;最后,對已經編好的程序進行測試,并根據測試結果進行調整,最終得到符合要求的程序設計方案。
數學建模是解決生活中實際問題的有效手段之一,之所以進行數學建模,是為了將抽象的問題進行簡單化處理,降低難度。然而,這并不意味著所有的問題都可以通過數學建模的方式實現,數學建模僅適用于具備一定規律的問題的研究。數學模型構建的過程,也就是尋找相關參數之間固定規律的過程,因此,基于數學模型的計算機編程優化,其基礎就是對數學算法的掌握,否則,計算機編程優化工作將無從下手。
隨著計算機軟件更新換代速度的加快,計算機軟件的復雜程度不斷提高,這對于計算機軟件使用者來說不失為一個好消息,然而,對于計算機編程人員來說,對已經較為完善的軟件程序進行完善和優化,是一個極為“痛苦”的過程。所謂“痛苦”,是指計算機編程人員需要對其中的數學算法進行調整,然而,計算機編程優化是一個系統化的過程,程序內不同模塊之間的計算結果存在必然聯系,一旦出現失誤,將導致極為嚴重的連鎖反應。因此,為便于計算機編程優化工作的開展,在軟件設計之初,就應當選擇較為科學合理的數學模型,并根據實際問題進行算法設計,在后期編程階段,對算法的適用性進行檢驗,并根據檢驗結果調整數學算法,盡最大可能的對程序進行優化。
計算機編程是一門應用性較強的專業性學科,利用計算機編程軟件,通過計算機語言的重新組織,設計出具備某一特定功能的程序。在實際應用中,計算機編程語言種類繁多,目前使用較為廣泛的編程語言為C、C++兩種類型,VB、匯編等編程語言已經甚少使用。
C語言是所有計算機高級語言中最為簡單、基礎的一種類型,正因為此,在計算機編程教學中,C語言多作為入門級編程語言來使用,不僅如此,在某些小程序的設計中,C語言也有著較為廣泛的應用。通過C語言的學習,能夠為進一步學習難度更高的計算機編程語言打下基礎。盡管,C語言屬于初級計算機編程語言,但是,在使用C語言編程的過程中,依然需要嚴格遵循代碼邏輯操作,對于C語言編程中存在的問題,則可以使用數學算法進行彌補。
例如,在計算機編程的入門級教材中,大多會遇到如何判斷某一年是否是閏年的題目,閏年的判斷標準具有復合性,從數學算法的角度來看,首先,閏年不能被100整除,但能夠被4整除;其閏年應為100的倍數并且是400的倍數。通過歸類法,可以直接對某一年分是否是閏年進行判斷。
如使用流程圖的方式進行分析的話,其效果更加直觀,流程圖在這里就相當于數學建模的形式,通過流程圖能夠更加直觀的分析編程中的冗余點,并找到程序優化的具體方法。
C++是一種面向對象的計算機語言,屬于計算機高級語言中使用較為廣泛的一種類型,從名字就可以看出,C++語言是在C語言的基礎上發展起來的。作為面向對象的計算機編程語言,在實際編程過程中,會對對象進行不同形式的封裝,從而避免C語言中存在的弊端,使計算機編程效率得到大大提高,這也是C++語言能夠編寫較為復雜的大型程序的主要原因之一。然而,C++編程語言的封裝和類的繼承同樣需要利用數學算法進行優化,否則,由于邏輯的復雜性,將導致軟件運行效率無法得到提高。
在使用C++語言編程時,需要根據程序設計的需要進行類的定義,以及在不同類之間的嵌套、封裝和繼承,對于一個較為復雜的程序來說,類的嵌套、封裝和繼承需要消耗掉計算機大量的計算資源。在此情況下,利用數學算法對C++語言編程進行優化,能夠有效解決面向對象程序設計過程中的代碼冗余和邏輯陷阱等問題,從而有效發揮面向對象程序設計的效率優勢。
對于這一題目,利用傳統計算方式不僅難度較大,龐大的計算量也將消耗大量的時間,因此,利用計算機則可以快速求出相對應的結果,根據,將n的取值代入,得到最終結果,然后數一下最后0的個數。但是,人工錄入數據計算的方式依然過于繁瑣,利用其中存在的規律,通過計算機編程的方式則可以明顯簡化這一問題,關鍵是如何選擇數學算法。
方法一:

從以上程序代碼中可以看出,盡管,該程序能夠解決題目中的問題,但是,由于計算次數過多,犧牲了大量的時間。不僅如此,在計算機過程中,某些數字的計算是不會出現末尾為0的結果,如2*3,2*4等,大量的無用計算造成了時間的浪費,因此,該數學算法并不是此題的最優算法。
方法二:
針對方法一中的問題,我們發現,在末尾0被去掉的情況下,能夠再次產生0的情況僅有四種,也就是2*5,4*5,6*5和8*5的組合形式。針對這一邏輯關系,我們可以將代碼進行如下調整:

由方法二可以看出,通過算法優化,程序的計算量相當于方法一的1/5,通過對分解數n的整理,可以發現,n中含有5的個數就是最終答案0的個數。因此,在計算機編程優化過程中,應注意發現其中的規律,并以此指導數學算法的修改,盡可能的壓縮程序所占用的空間和時間。
數學算法是數學學習中經常使用的計算方法,并且,不同數學算法的使用效果也會跟實際問題的不同形成差異。利用數學算法思想,能夠實現計算機編程優化的深入進行,是原本復雜的程序設計更加簡單化,提高程序運行效率,這對于競爭日益激烈的計算機軟件行業來說顯得極為重要。
[1]張楠.計算機編程中數學算法優化探析[J].數字通信世界,2017(09).
[2]郭億鴻.數學算法在計算機編程優化中的作用[J].電子技術與軟件工程,2016(24).
[3]高占江.計算機編程中數學算法優化探析[J].電腦迷,2016(09).