電腦科學和數學的關係有點奇怪。二三十年以前,電腦科學基本上還是數學的乙個分
支。而現在,電腦科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動
數學發展,從某種意義上可以說是孩子長得比媽媽還高了。
但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical underpi
nning of computer science(電腦科學的數學基礎),-- 也就是理論電腦科學。
現代電腦科學和數學的另乙個交叉是計算數學/數值分析/科學計算,傳統上不包含在理
論電腦科學以內。所以本文對計算數學全部予以忽略。
最常和理論電腦科學放在一起的乙個詞是什麼?答:離散數學。這兩者的關係是如此密
切,以至於它們在不少場合下成為同義詞。
傳統上,數學是以分析為中心的。數學系的同學要學習三四個學期的數學分析,然後是復
變,實變,泛函等等。實變和泛函被很多人認為是現代數學的入門。在物理,化學,工程
上應用的,也以分析為主。
隨著電腦科學的出現,一些以前不太受到重視的數學分支突然重要起來。人們發現,這
些分支處理的數學物件與傳統的分析有明顯的區別:分析研究的物件是連續的,因而微分
,積分成為基本的運算;而這些分支研究的物件是離散的,因而很少有機會進行此類的計
算。人們從而稱這些分支為「離散數學」。「離散數學」的名字越來越響亮,最後導致以
分析為中心的傳統數學分支被相對稱為「連續數學」。
離散數學經過幾十年發展,基本上穩定下來。一般認為,離散數學包含以下學科:
1) 集合論,數理邏輯與元數學。這是整個數學的基礎,也是電腦科學的基礎。
2) 圖論,演算法圖論;組合數學,組合演算法。電腦科學,尤其是理論電腦科學的核心是
演算法,而大量的演算法建立在圖和組合的基礎上。
3) 抽象代數。代數是無所不在的,本來在數學中就非常重要。在電腦科學中,人們驚訝
地發現代數竟然有如此之多的應用。
但是,理論電腦科學僅僅就是在數學的上面加上「離散」的帽子這麼簡單嗎?一直到大
約十幾年前,終於有一位大師告訴我們:不是。
d.e.knuth(他有多偉大,我想不用我廢話了)在stanford開設了一門全新的課程concrete
mathematics。 concrete這個詞在這裡有兩層含義:
第一,針對abstract而言。knuth認為,傳統數學研究的物件過於抽象,導致對具體的問題
關心不夠。他抱怨說,在研究中他需要的數學往往並不存在,所以他只能自己去創造一些
數學。為了直接面向應用的需要,他要提倡「具體」的數學。
在這裡我做一點簡單的解釋。例如在集合論中,數學家關心的都是最根本的問題--公理系
統的各種性質之類。而一些具體集合的性質,各種常見集合,關係,對映都是什麼樣的,
數學家覺得並不重要。然而,在電腦科學中應用的,恰恰就是這些具體的東西。knuth能
夠首先看到這一點,不愧為當世計算機第一人。
第二,concrete是continuous(連續)加上discrete(離散)。不管連續數學還是離散數學,
都是有用的數學!
前面主要是從數學角度來看的。從計算機角度來看,理論電腦科學目前主要的研究領域
包括:可計算性理論,演算法設計與複雜性分析,密碼學與資訊保安,分布式計算理論,並
行計算理論,網路理論,生物資訊計算,計算幾何學,程式語言理論等等。這些領域互相
交叉,而且新的課題在不斷提出,所以很難理出乙個頭緒來。
下面隨便舉一些例子。
由於應用需求的推動,密碼學現在成為研究的熱點。密碼學建立在數論(尤其是計算數論)
,代數,資訊理論,概率論和隨機過程的基礎上,有時也用到圖論和組合學等。
很多人以為密碼學就是加密解密,而加密就是用乙個函式把資料打亂。這就大錯特錯了。
現代密碼學至少包含以下層次的內容:
第一,密碼學的基礎。例如,分解乙個大數真的很困難嗎?能否有一般的工具證明協議正
確?第二,密碼學的基本課題。例如,比以前更好的單向函式,簽名協議等。
第三,密碼學的高階問題。例如,零知識證明的長度,秘密分享的方法。
第四,密碼學的新應用。例如,數字現金,叛徒追蹤等。
電腦科學和數學的關係
電腦科學和數學的關係有點奇怪。二三十年以前,電腦科學基本上還是數學的乙個分 支。而現在,電腦科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動 數學發展,從某種意義上可以說是孩子長得比媽媽還高了。但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical und...
計算機與數學的關係
說明 這是 別人的一篇文章,可能沒有什麼實際的指導性意義,但我個人認為,計算機學習的不僅僅是應用,還有思想 一種數學思維 管理學思維,數學是學好 學精計算機技術的前提,無數圖靈獎獲得者都是數學界的專家足以證明這一點。為此,我特定收集了一些與計算機有關的數學資料,希望對大家有所幫助。電腦科學和數學的關...
計算機與數學的關係
電腦科學和數學的關係有點奇怪。二三十年以前,電腦科學基本上還是數學的乙個分支。而現在,電腦科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動數學發展,從某種意義上可以說是孩子長得比媽媽還高了。但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical under...