《具體數學》第一章筆記

今天開始讀《Concrete Mathematics》這本書,前言很有趣,值得一看。


正文只讀了第一章,不清楚這本書是否真的有豆瓣上別人評論的那麼玄乎、那麼高深,不過讀了前言和第一章之後,起碼我覺得這是本非常有趣的數學書,至於牛不牛X,下回分解。


總的來說,第一章理解起來不算難,不過JOSEPHUS問題的小節看到後面的部分就不太明白了,課後的練習也不是太明白,嘛。。暫且放一放,先繼續閱讀下去再說吧。


第一章三個小節,分別介紹了三個例子:HANOI TOWER、 LINES IN THE PLANE、THE JOSEPHUS PROBLEM。


都是一些遞歸問題,計算它們求解所需的計算次數,感覺就是披上了馬甲的算法分析。


不過有了具體的例子,很好懂,不是平時直接丟給你一個漸近階就完了。。。


HANOI TOWER


這個例子中講了一些從問題到解答,再從解答到證明(模式,pattern)的思想探索過程。


通常規律是:

  1. 從等小規模輸入開始,觀察問題的解,從中推測出問題的答案所遵循的模式。
  2. 從等大規模輸入開始,觀察問題的解,這裏有兩個作用:1)如果步驟1推測出某個模式,就用大規模參數驗證它。2)如果步驟1沒有推測出某個模式,就反其道而行之,從大規模輸入着手,看能不能推出模式,可參考《how to solve it》中的《working backwards》小節。)。
  3. 根據以上的步驟提供的線索,尋找並證明問題的一個更準確且緊確(closed form)的解。

另外,《algorithms in c》的5.2節,也討論了HANOI TOWER問題,談到了它和遞歸、分治、二進制這三個東西有令人相當驚訝的聯繫,給出了HANOI TOWER的一個有趣解法,可以延伸閱讀下。


LINES IN THE PLANE


跟章節裏其他兩個例子來說,這個例子有點平淡無奇,沒啥好說的了,唯一的作用是引出了等差數列。


唯二的作用是說明了什麼是“closed form”——簡單來說,就是可以直接拿一個N,計算出結果的簡單數學公式。


THE JOSEPHUS PROBLEM


這是這個章節最有趣的部分了,JOSEPHUS PROBLEM在各類算法和數據結構書上看得多了,沒想到還能用二進制移位簡單地解決掉,酷,一個數學問題在計算機模型上的完美解決。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章