胡翔宇
(江蘇大學 卓越學院,江蘇 鎮江 212000)
數學是一門工具性極強的學科,相對于其他學科來說,其抽象性、邏輯性等特點十分明顯。就當前數學的應用來看,其與計算機科學之間有著不可分割的聯系。隨著互聯網技術、人工智能技術的發展,計算機運算性能得到了質的飛躍,計算機的優勢也越來越明顯,將深奧的數學理論應用到實際問題中,有效解決了現實生活中的各種難題[1]。計算機已經證明了四色問題,證明過程中利用了大量數學思想,如小波分析、離散數學、仿生計算等,人們開始意識到計算機科學與數學之間有著密不可分的關系。計算機的主要任務是進行數據處理、圖像處理、程序設計等不同類型的計算,這些工作可以分為數值計算與非數值計算。計算機科學計算步驟如圖1所示。

圖1 計算機科學計算步驟Fig.1 Computer science calculation steps
可以看出,計算機在解決問題中需要將實際問題轉化為程序,建立完善的數學模型,完成對具體問題的抽象化處理。計算機軟件編程是以數學模型為基礎的,軟件編程中的大量理論和技術是應用數學進行描述的。計算機算法的正確性、程序語義以及理論基礎都為數理邏輯或模型論。
數學模型指通過構建符號系統,把對事物系統特點與數量關系的描述以數學形式表現出來?,F代科學發展的重要特點之一就是實現科學的數學化,將現實、形象的問題轉化為數學模型。隨著計算機技術的快速發展及相關產業的成熟,各類軟件已應用到社會生產的各個領域,如導航軟件、購物軟件、新聞軟件等都是利用數學模型進行計算機編程,使人們的生產生活更加便捷[2]。當前計算機軟件所能處理的問題已經不局限于數學計算領域,而是拓展到用于解決大量非數值計算問題。利用計算機軟件編程解決現實問題時,需要將現實問題進行數學化處理,建立基于數值問題的數學模型,即數學方程。針對非數值計算的數學模型建立,則需要通過表、樹以及圖等相關數據配合數學方程式,建立完善的描述,從而利用計算機進行計算。
離散數學在計算機科學中的應用十分廣泛,主要有以下幾個方面:第一,離散數學在數據結構中的應用。計算機數據結構將操作對象之間的關系分為若干種,分別為集合、線性結構、樹形結構、圖狀結構及網狀結構。計算機中數學結構研究的主要內容為數據結構的邏輯體系、基礎運算等。其中,邏輯體系與基礎運算都是離散數學中重要的離散結構與算法思考內容。離散數學中集合論等知識點及關系等都被應用在計算機數據結構中。如集合論中集合由元素組成,元素是世界上的客觀事物,關系是建立在集合論基礎上的一種特殊集合[3]。第二,離散數學在數據庫中的應用。計算機科學中的數據庫應用十分廣泛,其中關系數據庫是計算機數據庫中最常見的類型之一。笛卡爾積是離散數學中的基本理論,也是計算機數據庫建設的基礎理論之一。笛卡爾積理論為計算機關系數據庫的建設提供了理論與方法,并為數據技術的發展作出了巨大貢獻。關系數據模型以集合代數作為基礎,數據邏輯結構是以行列構成的二維表來闡述關系的數據形式。第三,離散數學在計算機編譯中的運用。計算機的編譯程序相對繁雜,一般計算機編譯程序包含詞法分析程序、語法分析程序、語義分析程序等,離散數學中的計算機模型知識點中分析了三種計算模型,分別為文法、有限狀態以及圖靈機,具體理論有語言與文法、帶輸出的優先級狀態、圖靈機等。上述離散數學中的理論知識均能夠在計算機編譯原理的詞法分析中找到??梢钥闯?,離散數學是計算機編譯原理的重要基礎知識。第四,離散數學在人工智能中的應用。在計算機人工智能中邏輯推理是重要的技術支持。邏輯是數學領域中推理的基礎,對計算機人工智能技術有著廣泛的現實作用。離散數學中的數學推理知識與布爾代數理論為計算機人工智能的早期發展奠定了堅實基礎。第五,離散數學在計算機體系結構中的運用。在計算機體系結構中指令系統設計與優化十分關鍵,指令系統與計算機系統性能之間有著密切關系。指令系統的優化方式眾多,一是對指令格式的優化,指令通常由操作碼與地址碼構成,指令格式優化即為如何利用最短位數來代表指令的操作與地址信息,以便使程序中的指令字長盡可能短[4]。基于這一目的,需要使用哈夫曼的壓縮概念,該概念的基本思想為當各類事件發生概率不平均時,采用優化技術對概率最高的事件用最短的位置來標識,對概率較低的事件則使用較長的位置來表示,這就會導致平均位數變短。利用哈夫曼概念創造出哈夫曼樹,利用頻度對計算機指令系統中的所有指令進行統計,并根據頻度從小到大排列,每次選擇其中最小兩個頻度合并為新頻度,將其插入未結合的頻度中,如此往復直到所有頻度完成結合形成根節點。再針對節點向下延伸分支,分別為“1”與“0”。從根結點開始沿線所經過的代碼序列為哈夫曼編碼,這一編碼系列滿足指令使用概率低的指令編以長碼。
組合數學是與計算機科學一同發展成熟的,具有綜合性、邊緣性,即為分析事物發生中可能聯系的N種數學理論。相對傳統數學而言,組合數學是離散事物之間存在的必然數學聯系,如構造性問題、最優化問題等。在組合數學中,技術問題是研究最為成熟的內容之一。計算機科學需要研究算法,對算法的運算與存儲單元進行評估,體現了算法在空間與時間上的復雜性。組合數學的具體研究內容包括容斥原理、生成函數與遞推關系等,組合數學有力推動了計算機科學的發展,為了判斷計算機算法的效率,需要使用該算法解答具有給定的輸入時需要多少步。
數論也被稱為整數論,分為初等數論、解析數論、代數數論及幾何數論等分支。代數數論將證書概念推廣到一般代數領域中,構建了可除性、素整數等概念。程序設計中應用較為頻繁的有代數曲線,如橢圓曲線理論。隨著當代計算機科學的發展,數論的應用也愈加廣泛,如在計算機方法、代數編碼、組合學理論等方面都廣泛應用了初等數論研究的一系列成果。數論算法對于計算機程序設計具有較大作用,其中素數問題、素性測試、因子分解、求解同余線性方程等都是計算機程序設計中需要使用的,如基于大素數的密碼體系是近年來數論算法的廣泛應用之一。
數學是一門邏輯性較強的抽象學科,對于計算機科學的發展具有重要作用。數學能夠幫助人們建立抽象的邏輯思維,通過舉一反三的思維方式進行創新。數學模型、離散數學、組合數學及數論均在計算機科學中得到了廣泛應用,為計算機編程、模型建設、數據存儲提供了理論支持。