戴相承
摘 要:數學和計算機的關系非常密切。一直到二三十年以前,計算機科學本身還是數學學科的一個分支,最早研究計算機的專家也都是數學家。在計算機進行運算的基本原理中,處處滲透著數學的各種思想。而現在,計算機科學已經深受人們的關注,成為了一個獨立的學術領域,這之間離不開數學理論的推動;反之,從數學的發展來看,不僅可以利用計算機解決大量人工無法實現的巨量計算問題,很多難以證明的定理還可以通過計算機完成證明;程序,作為數學與計算機之間的一座重要橋梁,在數學的發展,計算機的應用方面起著雙重的推動作用。本文從數學原理與計算機技術的關系展開討論。
關鍵詞: 計算機科學 數學 基礎作用
一、數學是計算機技術的基礎
數學是一門基礎理論學科,數學在科學研究中的作用眾所周知,甚至被稱為“科學的皇后”。數學是所有學科的基礎,統治著所有涉及到量的世界。每個想要搞理科研究的學者都必須有良好的數學基礎。在計算機發明之前,數學的發展是靠無數科學家們代代相傳的努力換來的。有了計算機,數學的發展的確變得更快更好。但是,具體地說,計算機技術是如何推動數學學科的發展的?數學作為計算機技術的基礎又體現在哪些方面,下面從兩者之間的相互影響展開討論。
1、數學家對計算機理論和技術的貢獻
提到計算機,不能不提到二十世紀的兩位偉大的數學家——阿蘭·圖靈和馮·諾伊曼。阿蘭·圖靈是英國一位著名的數學家。他通過仔細研究,提出了“所有的數學運算過程都可以抽象成數學模型” 的觀點,并于1936年開創性地提出了計算機的運算模型,奠定了現代計算機技術的理論基礎,因此被譽為“計算機理論之父”。馮·諾伊曼是美籍匈牙利數學家。他的重要貢獻是對由約翰·莫克利(John Mauchly)和普雷斯伯·埃克特(Presper Eckert)研制的世界上第一臺數字式電子計算機進行了一次全新的改革。這項改革從此徹底改變了計算機技術的命運。原來,莫克利和埃克特發明的計算機雖然能大大提高運算速度,但它卻存在著兩個致命缺點:
(1)沒有儲存器,無法將數據或指令存儲到計算機中;
(2)每次執行不同的任務,都要重新布置導線。這樣,它運算速度快的優點被布線所需花費的大量時間所抵消。因此,他的應用也僅限于復雜的科學計算和軍事應用。馮·諾伊曼運用數學中的“二進制”思想將其改進,發明了“離散變量自動電子計算機”EDVAC(electronic discrete variable automatic computer )。這種計算機能夠將數據或指令儲存,更重要的是它由于采用了二進制的運算方式,大大方便了數據的傳輸。這樣,計算機的應用面立刻擴大了,它不僅被用在軍事與尖端技術上,同時也應用在工程設計、數據處理、事務管理等方面。可以說,我們現在使用的計算機還是建立在EDVAC基礎之上的。由于馮·諾伊曼對計算機技術的巨大貢獻,他被稱為“計算機之父”。
二、數學思想在計算機技術中的運用
現代計算機之所以能夠如此智能化,在很大程度上是由于受了數學思想的啟發。數學邏輯結構的嚴謹,數學理論的嚴密,甚至許多數學方法本身,都直接被廣泛地采用到計算機科學的眾多領域。比如,數學中的二進制思想已成為現代計算機技術發展的堅實基礎。
廣泛地說,只要進行數據的傳輸或整理時,就要用到這種思想。具體做法是將每一個字節的數據用八位二進制數保存,這樣在通過導線傳輸時只需用導線的通與斷來分別表示0和1,就可以表示整個字節。從一個文件的儲存,到一幅千兆圖片的存儲,更甚網絡中成千上萬的各種格式的數據的運送,都是離不開二進制的。回想一下,如果沒有二進制的思想作為基礎,或者說沒有數學的發展作基礎,何來馮·諾伊曼的偉大創舉,乃至EDVAC和當今計算機的誕生呢?從這個意義上說,沒有數學原理的應用,就沒有現代的計算機技術。
三、數學原理對計算機軟件系統的支持
上述提到的是計算機硬件技術的發展對數學的依賴,除此之外,計算機軟件設計也離不開數學原理的支持。要掌握好計算機程序設計,數學功底非常重要。從我個人的體會來看,要設計任何一個計算機算法,其實質都是先將問題轉化為一個(更多的情況下是多個)需要解決的子問題,然后再想辦法逐一解決這些問題,最后使得整個程序連貫為一體。通俗的講,就是先“審題”,然后考慮解決的方法,一步一步深入,直到整個問題解決。這其中是一環緊扣一環,有著非常嚴密的邏輯性的。少一個步驟,跳一個步驟,或者有一個環節出了差錯,整個程序就會癱瘓。另外,就從編程序的這個環節來說,利用任何一種語言編制程序都需要不斷運用數學理論來幫助。
同時,仍然要保持程序邏輯的嚴密性。一個具有數學修養的程序員在寫代碼時更有可能寫出邏輯嚴密的最簡化的高質量代碼。尤其是對大型復雜的軟件系統,如果沒有良好的數學思維的訓練,是很難編制出高質量的程序的。舉例說,我們要操作或控制計算機,就必須有操作系統。操作系統至今已經有了幾百種,個人計算機中最常用的有windows98 / me / 2 000 / 2003 / xp等。這些復雜的操作系統的產生,歸根結底還是由不同的程序模塊組合而成。這樣大型的程序系統,離不開一個又一個的子程序,以及它們之間嚴密的優化組合,這樣才能讓用戶放心使用,不會出現意想不到的漏洞與問題。
有關研究表明,我們國家計算機軟件水平的落后不是因為我們缺少程序員,而是因為缺乏懂數學的高質量的程序員。又比如微軟公司總裁比爾·蓋茨,他之所以能夠在計算機軟件方面取得成功,很大程度上是由于年青時對數學的癡迷,具有的極強的數學思維能力。歸根結底,程序是計算機與數學之間最重要的一座連接的橋梁。