計算機科學(xué)和數(shù)學(xué)的關(guān)系有點奇怪。二三十年以前,計算機科學(xué)基本上還是數(shù)學(xué)的一個分支。而現(xiàn)在,計算機科學(xué)擁有廣泛的研究領(lǐng)域和眾多的研究人員,在很多方面反過來推動數(shù)學(xué)發(fā)展,從某種意義上可以說是孩子長得比媽媽還高了。青出于藍,而勝于藍可以形容計算機與數(shù)學(xué)的關(guān)系。
但不管怎么樣,這個孩子身上始終流著母親的血液。這血液是the mathematical underpinning of computer science(計算機科學(xué)的數(shù)學(xué)基礎(chǔ)),-- 也就是理論計算機科學(xué)。
現(xiàn)代計算機科學(xué)和數(shù)學(xué)的另一個交叉是計算數(shù)學(xué)/數(shù)值分析/科學(xué)計算,傳統(tǒng)上不包含在理論計算機科學(xué)以內(nèi)。所以本文對計算數(shù)學(xué)全部予以忽略。最常和理論計算機科學(xué)放在一起的一個詞是什么?答:離散數(shù)學(xué)。這兩者的關(guān)系是如此密切,以至于它們在不少場合下成為同義詞。
傳統(tǒng)上,數(shù)學(xué)是以分析為中心的。數(shù)學(xué)系的同學(xué)要學(xué)習(xí)三四個學(xué)期的數(shù)學(xué)分析,然后是復(fù)變,實變,泛函等等。實變和泛函被很多人認為是現(xiàn)代數(shù)學(xué)的入門。在物理,化學(xué),工程上應(yīng)用的,也以分析為主。
隨著計算機科學(xué)的出現(xiàn),一些以前不太受到重視的數(shù)學(xué)分支突然重要起來。人們發(fā)現(xiàn),這些分支處理的數(shù)學(xué)對象與傳統(tǒng)的分析有明顯的區(qū)別:分析研究的對象是連續(xù)的,因而微分,積分成為基本的運算;而這些分支研究的對象是離散的,因而很少有機會進行此類的計算。人們從而稱這些分支為;離散數(shù)學(xué)
離散數(shù)學(xué)經(jīng)過幾十年發(fā)展,基本上穩(wěn)定下來。一般認為,離散數(shù)學(xué)包含以下學(xué)科:
1) 集合論,數(shù)理邏輯與元數(shù)學(xué)。這是整個數(shù)學(xué)的基礎(chǔ),也是計算機科學(xué)的基礎(chǔ)。
2) 圖論,算法圖論;組合數(shù)學(xué),組合算法。計算機科學(xué),尤其是理論計算機科學(xué)的核心是算法,而大量的算法建立在圖和組合的基礎(chǔ)上。
3) 抽象代數(shù)。代數(shù)是無所不在的,本來在數(shù)學(xué)中就非常重要。在計算機科學(xué)中,人們驚訝地發(fā)現(xiàn)代數(shù)竟然有如此之多的應(yīng)用。
但是,理論計算機科學(xué)僅僅就是在數(shù)學(xué)的上面加上;離散;的帽子這么簡單嗎?一直到大約十幾年前,終于有一位大師告訴我們:不是。
D.E.Knuth(他有多偉大,我想不用我廢話了)在Stanford開設(shè)了一門全新的課程Concrete Mathematics。 Concrete這個詞在這里有兩層含義:
第一,針對abstract而言。Knuth認為,傳統(tǒng)數(shù)學(xué)研究的對象過于抽象,導(dǎo)致對具體的問題關(guān)心不夠。他抱怨說,在研究中他需要的數(shù)學(xué)往往并不存在,所以他只能自己去創(chuàng)造一些數(shù)學(xué)。為了直接面向應(yīng)用的需要,他要提倡;具體;的數(shù)學(xué)。
在這里我做一點簡單的解釋。例如在集合論中,數(shù)學(xué)家關(guān)心的都是最根本的問題--公理系統(tǒng)的各種性質(zhì)之類。而一些具體集合的性質(zhì),各種常見集合,關(guān)系,映射都是什么樣的,數(shù)學(xué)家覺得并不重要。然而,在計算機科學(xué)中應(yīng)用的,恰恰就是這些具體的東西。Knuth能夠首先看到這一點,不愧為當世計算機第一人。
第二,Concrete是Continuous(連續(xù))加上discrete(離散)。不管連續(xù)數(shù)學(xué)還是離散數(shù)學(xué),都是有用的數(shù)學(xué)!前面主要是從數(shù)學(xué)角度來看的。從計算機角度來看,理論計算機科學(xué)目前主要的研究領(lǐng)域包括:可計算性理論,算法設(shè)計與復(fù)雜性分析,密碼學(xué)與信息安全,分布式計算理論,并行計算理論,網(wǎng)絡(luò)理論,生物信息計算,計算幾何學(xué),程序語言理論等等。這些領(lǐng)域互相交叉,而且新的課題在不斷提出,所以很難理出一個頭緒來。
下面隨便舉一些例子。
由于應(yīng)用需求的推動,密碼學(xué)現(xiàn)在成為研究的熱點。密碼學(xué)建立在數(shù)論(尤其是計算數(shù)論),代數(shù),信息論,概率論和隨機過程的基礎(chǔ)上,有時也用到圖論和組合學(xué)等。
很多人以為密碼學(xué)就是加密解密,而加密就是用一個函數(shù)把數(shù)據(jù)打亂。這就大錯特錯了。現(xiàn)代密碼學(xué)至少包含以下層次的內(nèi)容:
第一,密碼學(xué)的基礎(chǔ)。例如,分解一個大數(shù)真的很困難嗎?能否有一般的工具證明協(xié)議正確?
第二,密碼學(xué)的基本課題。例如,比以前更好的單向函數(shù),簽名協(xié)議等。
第三,密碼學(xué)的高級問題。例如,零知識證明的長度,秘密分享的方法。
第四,密碼學(xué)的新應(yīng)用。例如,數(shù)字現(xiàn)金,叛徒追蹤等。
現(xiàn)代社會科學(xué)技術(shù)高速發(fā)展,數(shù)學(xué)學(xué)科的發(fā)展也已經(jīng)到了非常抽象的地步,但是計算機所應(yīng)用的數(shù)學(xué)依然是之前的經(jīng)典東西,怎么樣學(xué)好數(shù)學(xué),通過計算機這個平臺用好數(shù)學(xué),將計算引入世界的每一個角落,無時無可得都在運算,用于提高人類的生活質(zhì)量,這將是我們計算機學(xué)科從業(yè)人員的終極目的和追求。
數(shù)學(xué)與計算機這對較為古遠的母子關(guān)系,現(xiàn)在也已經(jīng)有了新的發(fā)展。學(xué)好計算機離不開好好學(xué)習(xí)數(shù)學(xué),而學(xué)好計算機卻也大大體現(xiàn)了數(shù)學(xué)的作用也不可忽視。在這個需要不斷進步和發(fā)展的時代,學(xué)習(xí)永無止境。增長知識的途徑也越來越多,社會的發(fā)展需要越來越多的計算機人才的出現(xiàn)。計算機的發(fā)展提高了人們的生活水準,帶動了政治、經(jīng)濟、文化的發(fā)展。今天就先和大家介紹到這里,想要了解更多關(guān)于計算機的信息,請繼續(xù)關(guān)注中培偉業(yè)。