遲呈英 王玄同 王子涵 戰(zhàn)學(xué)剛
摘 要:在實(shí)踐過程中,人們往往忽略了數(shù)學(xué)的重要性。我們通過理論分析和編程實(shí)例,對數(shù)學(xué)解題方法與程序設(shè)計(jì)過程進(jìn)行對比,討論了數(shù)學(xué)解題方法與程序設(shè)計(jì)關(guān)系,闡述了數(shù)學(xué)思維在程序設(shè)計(jì)中的重要性。
關(guān)鍵詞:數(shù)學(xué)解題方法;程序設(shè)計(jì);遞歸函數(shù)
中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
計(jì)算機(jī)程序,簡稱程序,是指一組指示計(jì)算機(jī)每一步動作的指令,用某種程序設(shè)計(jì)語言編寫,運(yùn)行于某種計(jì)算機(jī)之上。與程序相關(guān)的另一個(gè)概念是軟件。軟件包括程序、支撐程序運(yùn)行所需的數(shù)據(jù)資源、以及與這些程序相關(guān)的文檔。程序設(shè)計(jì)是給出解決特定問題程序的過程,程序設(shè)計(jì)過程通常包括分析、設(shè)計(jì)、編碼、測試、排錯(cuò)等不同階段。程序設(shè)計(jì)語言是人與計(jì)算機(jī)交流的工具。當(dāng)然,從工程角度來看,它也是軟件人員之間的交流工具。
澄清了程序、程序設(shè)計(jì)、程序設(shè)計(jì)語言等概念后,我們換一個(gè)角度考察機(jī)器,即計(jì)算機(jī)。從機(jī)器功能方面,我們可以將計(jì)算機(jī)看作是具有很大存儲容量的計(jì)算機(jī)器,其計(jì)算功能是通過自然數(shù)系統(tǒng)、布爾代數(shù)、整數(shù)系統(tǒng)和有理數(shù)系統(tǒng)完成的。
自然數(shù)系統(tǒng)和布爾代數(shù)是基本的,整數(shù)系統(tǒng)和有理數(shù)系統(tǒng)可以由前兩項(xiàng)通過編碼完成(事實(shí)上,早期的計(jì)算機(jī)就是這樣做的),也可以由硬件直接實(shí)現(xiàn)。這樣,我們可以把程序看作是通過上述幾個(gè)代數(shù)系統(tǒng)對計(jì)算過程的描述。當(dāng)然,我們所使用的計(jì)算機(jī)作為具體計(jì)算過程的執(zhí)行者,其本身的特性是程序設(shè)計(jì)語言和程序設(shè)計(jì)者必須考慮的。正因?yàn)槿绱?,我們可以將程序設(shè)計(jì)語言看作是受計(jì)算機(jī)特性約束的數(shù)學(xué)語言。
4 結(jié)論(Conclusion)
數(shù)學(xué)是各門科學(xué)的基礎(chǔ),起初計(jì)算機(jī)科學(xué)只是數(shù)學(xué)的一個(gè)分支,隨著時(shí)代的發(fā)展,人們越來越理解計(jì)算機(jī)與數(shù)學(xué)是
密不可分,計(jì)算機(jī)事實(shí)上就是一個(gè)計(jì)算工具。程序設(shè)計(jì)解決問題都是實(shí)際應(yīng)用問題,涉及各種各樣的科學(xué)計(jì)算,而實(shí)際問題轉(zhuǎn)換為程序,要經(jīng)過一個(gè)對問題抽象的過程,建立起完善的數(shù)學(xué)模型,才能設(shè)計(jì)一個(gè)問題解決的程序。這需要程序員具有良好的數(shù)學(xué)基礎(chǔ)。軟件編程的思想最重要是算法,而算法是建立在數(shù)學(xué)思維上的,其實(shí)說白了,程序只是一件衣服,算法才是它的靈魂,算法就來自于數(shù)學(xué),沒有深厚的數(shù)學(xué)思維功底,是弄不懂算法的。反過來,部分人對數(shù)學(xué)的重視程度不夠,在實(shí)際工作中往往會遇到困難。作者之一在過去30多年里,問過30多名數(shù)學(xué)本科以上學(xué)歷的人,一加一為什么等于二?竟然沒有一人完全回答正確!數(shù)學(xué)解題方法的合理運(yùn)用,可以給編程帶來很大方便,現(xiàn)在一些軟件的編寫,越來越多的用到數(shù)學(xué)推導(dǎo)和歸納。要在如此眾多的程序設(shè)計(jì)人員里面取得優(yōu)異成績,堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)和能力是很重要的。
參考文獻(xiàn)(References)
[1] 張金玲.關(guān)于數(shù)學(xué)問題的解法與計(jì)算機(jī)算法的討論[J].邢臺學(xué)
院學(xué)報(bào),2006(12):105-106.
[2] Bjarne Stroustrup.Programming:Principles and Practice in
C++. Addison Wesley,2009.
[3] 馬良齋.從遞歸算法看數(shù)學(xué)在計(jì)算機(jī)程序設(shè)計(jì)方面的作用[J].
河西學(xué)院學(xué)報(bào),2007(5):66-67.
[4] Edmund Landau.Grundlagen der Analysis(Das Rechnen mit
Ganzen,Rationalen,Irrationalen,Komplexen Zahlen)Chelsea
Publishing Company,1960 3rd ed.
[5] C.Bohm and G.Jacopini.Flow diagrams,Turing machines and
languages with only two formation rules.Communications of the
ACM,366-371,May 1966.