天天看點

《數學與泛型程式設計:高效程式設計的奧秘》一1.3 閱讀準備

由于書中的很多内容都和數學有關,是以你可能擔心自己必須先具備豐富的數學知識,然後才能看懂這本書。其實你隻要有邏輯思考能力就行(程式員應該很擅長邏輯思考),筆者并不會要求大家具備中學代數與中學幾何之外的其他數學知識。某些章節可能會運用向量(vector)與矩陣(matrix)等線性代數(linear algebra)方面的概念,如果從前沒有看過這方面的資料,那麼把這些内容跳過去就可以了。若是對本書所用的記法不夠熟悉,則請參考附錄A。

數學中有一個很重要的部分就是對命題給出形式化證明。本書就包含了許多這樣的證明過程。如果你在中學的幾何課、計算機科學專業的自動機理論(automata theory)課以及邏輯課中做過一些證明,那麼應該很容易就能了解本書所給出的證明。附錄B描述了某些常用的證明技巧,并給出了範例。

筆者假設你已經是一名程式員了,而且對C、C++或Java等典型的指令式(imperative)程式設計語言相當熟悉。盡管書中的範例是用C++寫的,但即便你原來沒有用C++寫過程式,也依然應該看得懂才對。附錄C解釋了一些C++特有的機制。雖說我們用的是C++語言,但筆者相信,書中所講的原則能夠适用于其他各種語言。

本書所談的很多程式設計話題也同時出現在Stepanov與McJones所寫的《程式設計原本》(Elements of Programming)一書中,而後者是從另外一種更加正式的角度來講解這些話題的。想要深入研究這些話題的讀者可以參考那本書,并将其與本書結合起來閱讀。在本書裡,我們偶爾也會提到《程式設計原本》中的相關章節。

繼續閱讀