計算機與數學

計算機科學數學的關係有點奇怪。二三十年之前,計算機科學基本上仍是數學的一個分支。而如今,計算機科學擁有普遍的研究領域和衆多的研究人員,在不少方面反過來推進數學發展,從某種意義上能夠說是孩子長得比媽媽還高了。但無論怎麼樣,這個孩子身上始終流着母親的血液。這血液是the mathematical underpinning of computer science(計算機科學的數學基礎),-- 也就是理論計算機科學。現代計算機科學和數學的另外一個交叉是計算數學/數值分析/科學計算,傳統上不包含在理論計算機科學之內。因此本文對計算數學所有予以忽略。算法

最常和理論計算機科學放在一塊兒的一個詞是什麼?安全

答:離散數學。這二者的關係是如此密切,以致於它們在很多場合下成爲同義詞。傳統上,數學是以分析爲中心的。數學系的同窗要學習三四個學期的數學分析,而後是復變,實變,泛函等等。實變和泛函被很多人認爲是現代數學的入門。在物理化學,工程上應用的,也以分析爲主。
隨着計算機科學的出現,一些之前不太受到重視的數學分支忽然重要起來。人們發現,這些分支處理的數學對象與傳統的分析有明顯的區別:分析研究的對象是連續的,於是微分,積分紅爲基本的運算;而這些分支研究的對象是離散的,於是不多有機會進行此類的計算。人們從而稱這些分支爲「離散數學」。「離散數學」的名字愈來愈響亮,最後致使以分析爲中心的傳統數學分支被相對稱爲「連續數學」。
離散數學通過幾十年發展,基本上穩定下來。通常認爲,離散數學包含如下學科:
1) 集合論,數理邏輯元數學。這是整個數學的基礎,也是計算機科學的基礎。
2) 圖論,算法圖論;組合數學,組合算法。計算機科學,尤爲是理論計算機科學的核心是算法,而大量的算法創建在圖和組合的基礎上。
3) 抽象代數。代數是無所不在的,原本在數學中就很是重要。在計算機科學中,人們驚訝地發現代數居然有如此之多的應用。網絡

可是,理論計算機科學僅僅就是在數學的上面加上「離散」的帽子這麼簡單嗎?分佈式

一直到大約十幾年前,終於有一位大師告訴咱們:不是。D.E.Knuth(他有多偉大,我想不用我廢話了)在Stanford開設了一門全新的課程Concrete Mathematics。 Concrete這個詞在這裏有兩層含義:
第一,針對abstract而言。Knuth認爲,傳統數學研究的對象過於抽象,致使對具體的問題關心不夠。他抱怨說,在研究中他須要的數學每每並不存在,因此他只能本身去創造一些數學。爲了直接面嚮應用的須要,他要提倡「具體」的數學。在這裏我作一點簡單的解釋。例如在集合論中,數學家關心的都是最根本的問題--公理系統的各類性質之類。而一些具體集合的性質,各類常見集合,關係,映射都是什麼樣的,數學家以爲並不重要。然而,在計算機科學中應用的,偏偏就是這些具體的東西。Knuth可以首先看到這一點,不愧爲當世計算機第一人。
第二,Concrete是Continuous(連續)加上discrete(離散)。無論連續數學仍是離散數學,
都是有用的數學!學習

前面主要是從數學角度來看的。從計算機角度來看,理論計算機科學目前主要的研究領域包括:可計算性理論,算法設計複雜性分析,密碼學信息安全,分佈式計算理論,並行計算理論,網絡理論生物信息計算,計算幾何學程序語言理論等等。這些領域互相交叉,並且新的課題在不斷提出,因此很難理出一個頭緒來。.net

下面隨便舉一些例子
因爲應用需求的推進,密碼學如今成爲研究的熱點。密碼學創建在數論(尤爲是計算數論),代數,信息論機率論和隨機過程的基礎上,有時也用到圖論和組合學等。設計

 

https://blog.csdn.net/a964867027/article/details/82585018對象

相關文章
相關標籤/搜索