計(jì)
算機(jī)自從其誕生之日起,它的主要任務(wù)就是進(jìn)行各種各樣的科學(xué)計(jì)算。文檔處理,數(shù)據(jù)處理,圖像處理,硬件設(shè)計(jì),軟件設(shè)計(jì)等等,都可以抽象為兩大類(lèi):數(shù)值計(jì)算
與非數(shù)值計(jì)算。作為研究計(jì)算機(jī)科學(xué)技術(shù)的人員,我們大都對(duì)計(jì)算數(shù)學(xué)對(duì)整個(gè)計(jì)算機(jī)科學(xué)的重要性有一些了解。但是數(shù)學(xué)對(duì)我們這些專(zhuān)業(yè)的研究和應(yīng)用人員究竟有多
大的用處呢?我們先來(lái)看一下下面的一個(gè)流程圖:
上圖揭示了利用計(jì)算機(jī)解決科學(xué)計(jì)算的步驟,實(shí)際問(wèn)題轉(zhuǎn)換為程序,要經(jīng)過(guò)一個(gè)對(duì)問(wèn)題抽象的過(guò)程,建立起完善的數(shù)學(xué)模型,只有這樣,我們才能建立一個(gè)
設(shè)計(jì)良好的程序。從中我們不難看出計(jì)算數(shù)學(xué)理論對(duì)用計(jì)算機(jī)解決問(wèn)題的重要性。下面我們將逐步展開(kāi)對(duì)這個(gè)問(wèn)題的討論。
計(jì)算機(jī)科學(xué)的數(shù)學(xué)理論體系是相當(dāng)龐雜的,筆者不敢隨意劃分,參考計(jì)算機(jī)科學(xué)理論的學(xué)科體系,我們談及的問(wèn)題主要涉及:數(shù)值計(jì)算,離散數(shù)學(xué),數(shù)論,計(jì)算理論四大方向。
[一]數(shù)值計(jì)算(Numerical Computation)主要包括數(shù)值分析學(xué)、數(shù)學(xué)分析學(xué)、線性代數(shù)、計(jì)算幾何學(xué)、概率論與數(shù)理統(tǒng)計(jì)學(xué)。
數(shù)值分析學(xué)又
常被稱(chēng)為計(jì)算方法學(xué),是計(jì)算理論數(shù)學(xué)非常重要的一個(gè)分支,主要研究數(shù)值型計(jì)算。研究的內(nèi)容中首先要談?wù)剶?shù)值計(jì)算的誤差分析,誤差是衡量我們的計(jì)算有效與否
的標(biāo)準(zhǔn),我們的算法解決問(wèn)題如果在誤差允許的范圍內(nèi),則算法是有效的,否則就是一個(gè)無(wú)效的問(wèn)題求解。另外就是數(shù)值逼近,它研究關(guān)于如何使用容易數(shù)值計(jì)算的
函數(shù)來(lái)近似地代替任意函數(shù)的方法與過(guò)程。感覺(jué)應(yīng)用比較廣的不得不提切雪比夫逼近和平方逼近了。筆者曾經(jīng)嘗試過(guò)的就是通過(guò)最佳平方逼近進(jìn)行曲線的擬合,開(kāi)發(fā)
工具可以選擇VC++或者M(jìn)atlab。插值函數(shù)是另外一個(gè)非常重要的方面,現(xiàn)代的計(jì)算機(jī)程序控制加工機(jī)械零件,根據(jù)設(shè)計(jì)可給出零件外形曲線的某些型值
點(diǎn),加工時(shí)走刀方向及步數(shù),就要通過(guò)插值函數(shù)計(jì)算零件外形曲線及其他點(diǎn)函數(shù)值。至于方程求根、線性方程組求解,一般的計(jì)算性程序設(shè)計(jì)問(wèn)題都會(huì)多多少少的涉
及一些,我們這里就不贅述了。關(guān)于數(shù)值分析學(xué)的一個(gè)學(xué)習(xí)誤區(qū)就是僅僅學(xué)習(xí)理論知識(shí),而很難和程序設(shè)計(jì)結(jié)合起來(lái),實(shí)際上通過(guò)上面的論述,大家已經(jīng)能夠初步地
認(rèn)識(shí)到這個(gè)學(xué)科是應(yīng)當(dāng)與程序設(shè)計(jì)緊密聯(lián)系才能夠體現(xiàn)它的重要性的。關(guān)于理論的學(xué)習(xí),推薦華中科技大學(xué)李慶揚(yáng)老師的《數(shù)值分析》。然而理論學(xué)習(xí)畢竟是個(gè)過(guò)
程,最終的目標(biāo)還是要用于程序設(shè)計(jì)解決實(shí)際的計(jì)算問(wèn)題,向這個(gè)方向努力的書(shū)籍還是挺多的,這里推薦大家高等教育出版社(CHEP)和施普林格出版社
(Springer)聯(lián)合出版的《計(jì)算方法(Computational
Methods)》,華中理工大學(xué)數(shù)學(xué)系寫(xiě)的(現(xiàn)華中科技大學(xué)),這方面華科大做的工作在國(guó)內(nèi)應(yīng)算是比較多的,而個(gè)人認(rèn)為以這本最好,至少程序設(shè)計(jì)方面涉
及了:任意數(shù)學(xué)函數(shù)的求值,方程求根,線性方程組求解,插值方法,數(shù)值積分,場(chǎng)微分方程數(shù)值求解。
數(shù)學(xué)分析學(xué)很
多學(xué)校在近些年已經(jīng)替代高等數(shù)學(xué)被安排到了本科教學(xué)當(dāng)中。原因是很簡(jiǎn)單的,高等數(shù)學(xué)雖然也是非常有用的工程數(shù)學(xué),介紹的問(wèn)題方法也被廣泛的應(yīng)用,但是正如
大家所知道的,高等數(shù)學(xué)不太嚴(yán)格的說(shuō),基本上就是偏向于計(jì)算的數(shù)學(xué)分析,當(dāng)然省去了數(shù)學(xué)分析非??粗氐耐评碜C明,然而我們認(rèn)為這一部分正是我們最需要的。
這對(duì)我們培養(yǎng)良好的分析能力和推理能力極有幫助。我的軟件工程學(xué)導(dǎo)師北工大數(shù)理學(xué)院的王儀華先生就曾經(jīng)教導(dǎo)過(guò)我們,數(shù)學(xué)系的學(xué)生到軟件企業(yè)中大多作軟件設(shè)
計(jì)與分析工作,而計(jì)算機(jī)系的學(xué)生做初級(jí)程序員的居多,原因就在于數(shù)學(xué)系的學(xué)生分析推理能力,從所受訓(xùn)練的角度上要遠(yuǎn)遠(yuǎn)在我們平均水平之上。談到這方面的書(shū)
籍,公認(rèn)北京大學(xué)張筑生老師的《數(shù)學(xué)分析新講》為最好。張筑生教授一生寫(xiě)的書(shū)并不太多,但是只要是寫(xiě)出來(lái)的每一本都是本領(lǐng)域內(nèi)的杰作,這本當(dāng)然更顯突出
些。這種老書(shū)看起來(lái)不僅是在傳授你知識(shí),而是在讓你體會(huì)科學(xué)的方法與對(duì)事物的認(rèn)識(shí)方法。現(xiàn)在多用的似乎是復(fù)旦大學(xué)的《數(shù)學(xué)分析》,高等教育出版社的,也是
很好的教材。但關(guān)于如何去利用從中獲得的推理證明能力,我們?cè)谟龅骄唧w問(wèn)題的時(shí)候,可以在今后的文章詳細(xì)討論。
線性代數(shù)是我們?cè)诠た票究茖W(xué)習(xí)的必修課程,似乎大家找不到到底這個(gè)有什么用,其實(shí)很明顯,線性代數(shù)作為工程數(shù)學(xué)的重要分支,在計(jì)算機(jī)領(lǐng)域的研究有相當(dāng)廣泛的應(yīng)用。最為突出的可以談?wù)剶?shù)組和矩陣的相關(guān)知識(shí):
下面談一個(gè)我經(jīng)常作為例子和同學(xué)討論的問(wèn)題:四個(gè)城市之間的航線如圖所示:
令aij=1,表示從i市到j(luò)市有1條航線
令aij=0,表示從i市到j(luò)市沒(méi)有單項(xiàng)航線
則圖可用矩陣表示:
A= (aij) = 
我們可以采用程序設(shè)計(jì)實(shí)現(xiàn)這個(gè)問(wèn)題,如果輔以權(quán)值,可以轉(zhuǎn)化為最短路徑的問(wèn)題,再?gòu)?fù)雜化一點(diǎn)還可以轉(zhuǎn)化為具有障礙物的最短路徑問(wèn)題,這就會(huì)涉及一
些如Dijkstra算法等高級(jí)程序設(shè)計(jì)算法話題。這些都依靠著數(shù)組、矩陣的基本知識(shí)。數(shù)組的應(yīng)用主要在圖像處理以及一些程序設(shè)計(jì)理論。矩陣的運(yùn)算領(lǐng)域極
為廣泛,比如在計(jì)算機(jī)圖形學(xué)當(dāng)中曲線曲面的構(gòu)造,圖像的幾何變換,包括平移、鏡像、轉(zhuǎn)置、縮放。在高級(jí)圖像問(wèn)題更有廣泛應(yīng)用,例如在圖像增強(qiáng)技術(shù),投影技
術(shù)中的應(yīng)用。
計(jì)算幾何學(xué)研
究的是幾何外形信息的計(jì)算機(jī)表示。包括幾何查找、多邊形、凸包問(wèn)題、交與并、幾何體的排列、幾何拓?fù)渚W(wǎng)絡(luò)設(shè)計(jì)、隨機(jī)幾何算法與并行幾何算法。它構(gòu)成了計(jì)算
機(jī)圖形學(xué)中的基本算法,是動(dòng)畫(huà)設(shè)計(jì),制造業(yè)計(jì)算機(jī)輔助設(shè)計(jì)的基礎(chǔ)。如果從事這方面的深入研究,可以參考中國(guó)計(jì)算機(jī)學(xué)會(huì)周培德先生的《計(jì)算幾何——算法分析
與設(shè)計(jì)》。
概率論與數(shù)理統(tǒng)計(jì)學(xué)是這個(gè)領(lǐng)域最后一門(mén)關(guān)鍵的課程。概率論部分提供了很
多問(wèn)題的基本知識(shí)描述,比如模式識(shí)別當(dāng)中的概率計(jì)算,參數(shù)估計(jì)等等。數(shù)理統(tǒng)計(jì)部分有很多非常經(jīng)典的內(nèi)容,比如偽隨機(jī)數(shù)、蒙特卡羅法、回歸分析、排隊(duì)論、假
設(shè)檢驗(yàn)、以及經(jīng)典的馬科夫過(guò)程。尤其是隨機(jī)過(guò)程部分,是分析網(wǎng)絡(luò)和分布式系統(tǒng),設(shè)計(jì)隨機(jī)化算法和協(xié)議非常重要的基礎(chǔ)。
[二]離散數(shù)學(xué)(Discrete
Mathematics)隨著計(jì)算機(jī)科學(xué)的出現(xiàn)與廣泛應(yīng)用,人們發(fā)現(xiàn)利用計(jì)算機(jī)處理的數(shù)學(xué)對(duì)象與傳統(tǒng)的分析有明顯的區(qū)別:分析研究的問(wèn)題解決方案是連續(xù)
的,因而微分,積分成為基本的運(yùn)算;而這些分支研究的對(duì)象是離散的,因而很少有機(jī)會(huì)進(jìn)行此類(lèi)的計(jì)算。人們從而稱(chēng)這些分支為"離散數(shù)學(xué)"。離散數(shù)學(xué)經(jīng)過(guò)幾十
年發(fā)展,方向上基本上穩(wěn)定下來(lái)。當(dāng)然不同時(shí)期還有很多新內(nèi)容補(bǔ)充進(jìn)來(lái)。就學(xué)科方向而言,一般認(rèn)為,離散數(shù)學(xué)包含:集合論、邏輯學(xué)、代數(shù)學(xué)、圖論、組合學(xué)。
邏輯學(xué)(Logics)我們主要指數(shù)理邏輯,形式邏輯在推理問(wèn)題中也有比較廣泛的應(yīng)用。(比如我們學(xué)校還為此專(zhuān)門(mén)開(kāi)設(shè)了選修課程)這方面的參考推薦中科院軟件所陸鐘萬(wàn)教授的《面向計(jì)算機(jī)科學(xué)的數(shù)理邏輯》?,F(xiàn)在可以找到陸鐘萬(wàn)教授的講課錄像,http://www./html/Dir/2001/11/06/3391.htm。總的來(lái)說(shuō),學(xué)集合/邏輯一定要站在理解的高度上去思考相關(guān)的問(wèn)題。集合論(Set
Theory)和邏輯學(xué)構(gòu)成了計(jì)算機(jī)科學(xué)最重要的數(shù)學(xué)問(wèn)題描述方式。
代數(shù)學(xué)(Algebra)包括:抽象代數(shù)、布爾代數(shù)、關(guān)系代數(shù)、計(jì)算機(jī)代數(shù)
(1)抽象代數(shù)(Abstract
Algebra)研究的主要內(nèi)容涵蓋群、環(huán)、域。抽象代表的是將研究對(duì)象的本質(zhì)提煉出來(lái),加以高度概括,來(lái)描述其形象?!皻W式環(huán)”就是在將整數(shù)和多項(xiàng)式的
一些相同的特點(diǎn)加以綜合提煉引入的。抽象代數(shù)提供的一些結(jié)論為我們研究一些具體問(wèn)題時(shí)所需使用的一些性質(zhì)提供了依據(jù)。推薦一個(gè)最簡(jiǎn)單的,最容易學(xué)的材料:http://www.math./~ec/book/這本《Introduction
to Linear and Abstract Algebra》非常通俗易懂,而且把抽象代數(shù)和線性代數(shù)結(jié)合起來(lái),對(duì)初學(xué)者來(lái)說(shuō)非常理想。
(2)布爾代數(shù)(Boolean Algebra)是代數(shù)系統(tǒng)中最為基礎(chǔ)的部分,也是最核心的基本理論。主要包括了集合的基本概念與運(yùn)算,自對(duì)偶的公理系統(tǒng)。是數(shù)據(jù)表示的重要基礎(chǔ)。相信大家都很清楚它的重要性。
(3)關(guān)系代數(shù)(Relational Algebra)應(yīng)用也是極為廣泛,比如數(shù)據(jù)庫(kù)技術(shù)中的關(guān)系數(shù)據(jù)庫(kù)的構(gòu)建就要用到關(guān)系代數(shù)的相關(guān)理論。
(4)計(jì)算機(jī)代數(shù)(Computer
Algebra)大家可能比較生疏,其實(shí)它研究的主要內(nèi)容即是圍繞符號(hào)計(jì)算與公式演算展開(kāi)的。是研究代數(shù)算法的設(shè)計(jì)、分析、實(shí)現(xiàn)及其應(yīng)用的學(xué)科。主要求解
非數(shù)值計(jì)算,輸入輸出用代數(shù)符號(hào)表示。計(jì)算機(jī)代數(shù)的開(kāi)發(fā)語(yǔ)言主要有:ALTRAN,CAMAL,FORMAL。主要應(yīng)用于:射影幾何,工業(yè)設(shè)計(jì),機(jī)器人手
臂運(yùn)動(dòng)設(shè)計(jì)。
圖論(Graph
Theory)主要研究的內(nèi)容包括:圖的基本概念、基本運(yùn)算、矩陣表示,路徑、回路和連通性,二部圖、平面圖,樹(shù),以及網(wǎng)絡(luò)流。圖論的應(yīng)用領(lǐng)域太過(guò)廣泛,
僅舉兩個(gè)例子:比如在計(jì)算機(jī)網(wǎng)絡(luò)拓?fù)鋱D的設(shè)計(jì)與結(jié)構(gòu)描述中,就必須用到相當(dāng)多的圖的結(jié)構(gòu)和基本概念。關(guān)于網(wǎng)絡(luò)流更是在電流網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的流量計(jì)算當(dāng)中廣
泛應(yīng)用。樹(shù)的相關(guān)應(yīng)用則無(wú)須多言了。
組合學(xué)(Combinatorics)有兩部
分單獨(dú)的研究領(lǐng)域:組合數(shù)學(xué)與組合算法。組合學(xué)問(wèn)題的算法,計(jì)算對(duì)象是離散的、有限的數(shù)學(xué)結(jié)構(gòu)。從方法學(xué)的角度,組合算法包括算法設(shè)計(jì)和算法分析兩個(gè)方
面。關(guān)于算法設(shè)計(jì),歷史上已經(jīng)總結(jié)出了若干帶有普遍意義的方法和技術(shù),包括動(dòng)態(tài)規(guī)劃、回溯法、分支限界法、分治法、貪心法等。應(yīng)用是相當(dāng)廣泛的,比如旅行
商問(wèn)題、圖著色問(wèn)題、整數(shù)規(guī)劃問(wèn)題。關(guān)于組合數(shù)學(xué),主要研究的內(nèi)容有:鴿巢原理、排列與組合、二項(xiàng)式系數(shù)容斥原理及應(yīng)用,遞推關(guān)系和生成函數(shù)、特殊計(jì)數(shù)序
列、二分圖中的匹配、組合設(shè)計(jì)。推薦Richard A.Brualdi的《Introductory Combinatorics》作為參考。
[三]數(shù)論(Number Theory)
數(shù)論這門(mén)學(xué)科最初是從研究整數(shù)開(kāi)始的,所以叫做整數(shù)論。后來(lái)更名為數(shù)論。它包括以下幾個(gè)分支:
初等數(shù)論是
不求助于其他數(shù)學(xué)學(xué)科的幫助,只依靠初等方法來(lái)研究整數(shù)性質(zhì)的數(shù)論分支。比如在數(shù)論界非常著名的“中國(guó)剩余定理”,就是初等數(shù)論中很重要的內(nèi)容。對(duì)于程序
設(shè)計(jì)來(lái)說(shuō)這部分也是相當(dāng)有價(jià)值的,如果你對(duì)中國(guó)剩余定理比較清楚,利用它,你可以將一種表達(dá)式經(jīng)過(guò)簡(jiǎn)單的轉(zhuǎn)換后得出另一種表達(dá)式,從而完成對(duì)問(wèn)題分析視角
的轉(zhuǎn)換。
解析數(shù)論是使用數(shù)學(xué)分析作為工具來(lái)解決數(shù)論問(wèn)題的分支。是解決數(shù)論中比較深刻問(wèn)題的強(qiáng)有力的工具。我國(guó)數(shù)學(xué)家陳景潤(rùn)在嘗試解決“哥德巴赫猜想”問(wèn)題中使用的就是解析數(shù)論的方法。以素?cái)?shù)定理為基礎(chǔ)解決計(jì)算素?cái)?shù)的問(wèn)題及其算法實(shí)現(xiàn)應(yīng)是我們多多關(guān)注的。
代數(shù)數(shù)論是把整數(shù)的概念推廣到一般代數(shù)數(shù)域上去,建立了素整數(shù)、可除性等概念。程序設(shè)計(jì)方面涉及的比較多的是代數(shù)曲線的研究,比如說(shuō)橢圓曲線理論的實(shí)現(xiàn)。
幾何數(shù)論研究的基本對(duì)象是“空間格網(wǎng)”??臻g格網(wǎng)就是指在給定的直角坐標(biāo)系上,坐標(biāo)全是整數(shù)的點(diǎn),叫做整點(diǎn);全部整點(diǎn)構(gòu)成的組就叫做空間格網(wǎng)。空間格網(wǎng)對(duì)計(jì)算幾何學(xué)的研究有著重大的意義。幾何數(shù)論涉及的問(wèn)題比較復(fù)雜,必須具有相當(dāng)?shù)臄?shù)學(xué)基礎(chǔ)才能深入研究。
總的說(shuō)來(lái),由于近代計(jì)算機(jī)科學(xué)的發(fā)展,數(shù)論得到了廣泛的應(yīng)用。比如在計(jì)算方法、代數(shù)編碼、組合學(xué)理論等方面都廣泛使用了初等數(shù)論范圍內(nèi)的許多研究
成果;現(xiàn)在有些國(guó)家應(yīng)用“孫子定理”來(lái)進(jìn)行測(cè)距,用原根和指數(shù)來(lái)計(jì)算離散傅里葉變換等。如果你曾經(jīng)系統(tǒng)的學(xué)習(xí)過(guò)數(shù)論算法,你會(huì)發(fā)現(xiàn)這個(gè)分支學(xué)科研究的一些
基本問(wèn)題對(duì)程序設(shè)計(jì)是相當(dāng)有用的,比如說(shuō)素?cái)?shù)問(wèn)題、素性測(cè)試、因子分解、最大公約數(shù)、模取冪運(yùn)算、求解同余線性方程。其中的很多問(wèn)題都是程序設(shè)計(jì)的基本問(wèn)
題。但這些問(wèn)題都不能小視,舉個(gè)例子來(lái)說(shuō)吧,關(guān)于求最大公約數(shù)的程序,筆者曾經(jīng)嘗試的就可以采用循環(huán)語(yǔ)句結(jié)構(gòu)和遞歸結(jié)構(gòu)。另外,以大素?cái)?shù)為基礎(chǔ)的密碼體系
的建立是近些年數(shù)論算法廣泛應(yīng)用的一個(gè)重要的原因。原理是大素?cái)?shù)的乘積重新分解因數(shù)十分困難。RSA公鑰加密系統(tǒng)的構(gòu)建就是基于這個(gè)原理的(三位發(fā)明人因
此也獲得了2002年美國(guó)計(jì)算機(jī)協(xié)會(huì)頒發(fā)的圖靈獎(jiǎng))。
[四]計(jì)算理論(Theory of Computation)
涉及的內(nèi)容是科學(xué)計(jì)算非常重要的一部分分支,也是大家研究相當(dāng)多的一部分。主要包括:算法學(xué),計(jì)算復(fù)雜性,程序理論。
算法學(xué)(Algorithms)
在計(jì)算機(jī)科學(xué)理論中有著舉足輕重的地位。是解決很多數(shù)值型,非數(shù)值型問(wèn)題的基礎(chǔ)。記得一次學(xué)校接收招標(biāo)項(xiàng)目,很多中小型軟件廠商都無(wú)法完成一個(gè)軟件的功能
模塊,就是因?yàn)楫?dāng)時(shí)他們對(duì)一個(gè)具體問(wèn)題的算法不能做出正確的抽象,最后由我們學(xué)校數(shù)理學(xué)院的一支軟件團(tuán)隊(duì)承擔(dān)了這項(xiàng)任務(wù),他們的最終報(bào)告體現(xiàn)出來(lái),問(wèn)題的
解決策略只有通過(guò)人工神經(jīng)元網(wǎng)絡(luò)的反向傳播算法??梢?jiàn)在比較有深度的程序設(shè)計(jì)中,算法的重要性更為突出。學(xué)習(xí)算法學(xué)要有一個(gè)長(zhǎng)期的理論和實(shí)踐的過(guò)程。遇到
一個(gè)具體算法問(wèn)題時(shí),首先要通過(guò)自己描述的數(shù)學(xué)抽象步驟,看看自己以前有沒(méi)有處理過(guò)這種問(wèn)題。如果沒(méi)有,很可能這個(gè)問(wèn)題是多個(gè)算法的綜合,或者是需要我們
自己去構(gòu)造算法。這就需要我們有扎實(shí)的算法功底,為了打好這個(gè)功底,推薦兩套圣經(jīng)級(jí)的書(shū)籍首先是Thomas
H.Cormen等著的《Introduction to
Algorithms》。對(duì)算法學(xué)習(xí)而言,這一本內(nèi)容相當(dāng)?shù)娜?。再深一點(diǎn)的就是大家作為常識(shí)都知道的《The Art of Computer
Programming》,目前已經(jīng)出版3冊(cè)。兩本書(shū)的價(jià)值大家應(yīng)當(dāng)都是清楚的。
計(jì)算復(fù)雜性研
究的內(nèi)容很廣,其中包括NP完全性理論,可計(jì)算性理論,自動(dòng)機(jī)理論,形式語(yǔ)言理論(包括廣泛應(yīng)用于編譯原理領(lǐng)域的文法,還包括Petri網(wǎng)論的相關(guān)內(nèi)容)
以及大家熟知的復(fù)雜性度量。時(shí)間復(fù)雜度、空間復(fù)雜度的計(jì)算是度量算法非常重要的參數(shù),也是我們衡量程序優(yōu)劣程度的重要依據(jù)。
程序理論(Theory
of
programs)包含了形式語(yǔ)義學(xué),程序驗(yàn)證和并發(fā)模型的研究。關(guān)于程序驗(yàn)證學(xué)習(xí)的重要性大家都很清楚,學(xué)習(xí)的方法自然也是多多結(jié)合具體的問(wèn)題去分析。
關(guān)于并發(fā)模型,主要研究的就是進(jìn)程代數(shù),通信系統(tǒng)演算,通信順序進(jìn)程。這部分是研究操作系統(tǒng)理論與實(shí)現(xiàn)的重要基礎(chǔ)。
按照計(jì)算機(jī)科學(xué)數(shù)學(xué)理論的架構(gòu)來(lái)談了各方面的內(nèi)容和一些應(yīng)用,下面我們?cè)賳为?dú)來(lái)看一些上面沒(méi)有涉及到的學(xué)科與這些理論的具體結(jié)合情況:
設(shè)計(jì)方面的應(yīng)用剛才談的很多,我只再說(shuō)說(shuō)數(shù)據(jù)庫(kù)原理與技術(shù),這方面用到的重要數(shù)學(xué)基礎(chǔ)主要包括:集合論,二元關(guān)系及其推理(尤其是研究關(guān)系數(shù)據(jù)庫(kù)),研究數(shù)據(jù)分布與數(shù)據(jù)庫(kù)結(jié)構(gòu)又涉及相當(dāng)多的圖論知識(shí)。
計(jì)算機(jī)科學(xué)的發(fā)展有賴(lài)于硬件技術(shù)和軟件技術(shù)的綜合。在設(shè)計(jì)硬件的時(shí)候應(yīng)當(dāng)充分融入軟件的設(shè)計(jì)思想,才能使硬件在程序的指揮下發(fā)揮極致的性能。在軟
件設(shè)計(jì)的時(shí)候也要充分考慮硬件的特點(diǎn),才能沖破軟件效率的瓶頸。達(dá)到硬件和軟件設(shè)計(jì)的統(tǒng)一,嚴(yán)格的說(shuō)這并不輕松,一般的程序設(shè)計(jì)者很難將這樣的思想貫穿在
其程序設(shè)計(jì)當(dāng)中。僅舉個(gè)簡(jiǎn)單的例子:我們?cè)趯?xiě)一些C語(yǔ)言的程序,必要的時(shí)候都會(huì)采取內(nèi)嵌一段匯編指令,這就是比較充分地考慮了硬件的工作情況,從而能夠提
高程序運(yùn)行的效率。所以我們也有必要了解一些硬件的基礎(chǔ)知識(shí)。關(guān)于學(xué)習(xí)硬件的時(shí)候常會(huì)用到的基本數(shù)學(xué)思想也是相當(dāng)多的,拿電路基礎(chǔ)與模擬電路來(lái)說(shuō),我們就
經(jīng)常要利用多元函數(shù),不等式計(jì)算進(jìn)行電流電壓的計(jì)算。能量的計(jì)算還常常涉及微積分學(xué)的很多計(jì)算。在數(shù)字電子技術(shù)當(dāng)中(有時(shí)也稱(chēng)數(shù)字邏輯學(xué))數(shù)理邏輯,尤其
是邏輯演算部分運(yùn)用相當(dāng)廣泛,數(shù)制轉(zhuǎn)換更是非常重要的基礎(chǔ),各種數(shù)字電路參數(shù)的計(jì)算則是多元函數(shù),不等式的計(jì)算解決的問(wèn)題。
從事計(jì)算機(jī)硬件程序設(shè)計(jì)的程序員,則不可回避的就是數(shù)字信號(hào)處理。這門(mén)科學(xué)所用到的數(shù)學(xué)基礎(chǔ)主要有:三角函數(shù)、微積分、高次方程求解、數(shù)值逼近,
傅里葉變換。在濾波器的設(shè)計(jì)當(dāng)中還會(huì)用到矩陣運(yùn)算。筆者曾經(jīng)研究過(guò)一個(gè)VC++環(huán)境下開(kāi)發(fā)的濾波器的模擬軟件,就是利用萊文遜-杜賓遞推算法,在較大規(guī)模
的矩陣運(yùn)算基礎(chǔ)上進(jìn)行的。當(dāng)然,開(kāi)發(fā)的環(huán)境不一定是這個(gè),你也可以選擇MATLAB或者純C語(yǔ)言編譯器。如果我們不了解相關(guān)的數(shù)學(xué)基礎(chǔ),不要說(shuō)程序設(shè)計(jì),
就算是建立運(yùn)算模型都是相當(dāng)困難的。
一些周?chē)耐瑢W(xué)和一些在職的程序員,大家經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),普遍都覺(jué)得數(shù)學(xué)對(duì)學(xué)習(xí)計(jì)算機(jī)和研究計(jì)算機(jī)程序設(shè)計(jì)等問(wèn)題來(lái)說(shuō)非常重要,但是又苦于無(wú)
從下手。上面比較全面地談及了計(jì)算機(jī)科學(xué)數(shù)學(xué)理論的相關(guān)內(nèi)容。需要特別指明的是,我們研究問(wèn)題的精力是有限的,如果您是在校的計(jì)算機(jī)系學(xué)生,則可以對(duì)上面
的方方面面都有所涉及,以嘗試計(jì)算數(shù)學(xué)這個(gè)強(qiáng)大的理論工具。為今后的工作奠定一個(gè)堅(jiān)實(shí)的基礎(chǔ)。但是如果您研究的是比較具體的工作,我們并不推薦您研究所有
的內(nèi)容,最好的方法就是對(duì)上面的數(shù)學(xué)基礎(chǔ)都有些了解,然后遇到具體工作,需要哪部分內(nèi)容,再進(jìn)行深入的學(xué)習(xí)與研究。這樣針對(duì)性比較強(qiáng)的學(xué)習(xí)效果是會(huì)比較顯
著的。對(duì)于上面推薦的一些參考材料,除非你要花相當(dāng)長(zhǎng)的一段時(shí)間來(lái)提高你的計(jì)算機(jī)數(shù)學(xué)理論。否則也沒(méi)必要每一頁(yè),每一本都字字精讀,還是那個(gè)原則,按需索
取其中的內(nèi)容。學(xué)習(xí)的方法描述起來(lái)就一句話:結(jié)合具體的問(wèn)題,深入的理解數(shù)學(xué)理論知識(shí),將理論程序化,嘗試用程序設(shè)計(jì)實(shí)現(xiàn)理論原理。達(dá)到這樣的程度,問(wèn)題
基本上都可以解決的。(限于篇幅,很多問(wèn)題不能展開(kāi),您可以通過(guò)mailto:<a%20href=‘>zengyi@cstc.net.cn與我聯(lián)系)
參考文獻(xiàn):
《計(jì)算機(jī)科學(xué)技術(shù)百科全書(shū)》中國(guó)計(jì)算機(jī)學(xué)會(huì) 清華大學(xué)出版社
《工程數(shù)學(xué)—線性代數(shù)》同濟(jì)大學(xué)數(shù)學(xué)教研室 同濟(jì)大學(xué)出版社
《數(shù)值分析》李慶揚(yáng) 華中科技大學(xué)出版社
(全文完)
|