Monday, March 29, 2010

How to solve it 里面的第一個問題

注:這里說的是這本How to Solve It: Modern Heuristics by Zbigniew Michalewicz

在圖書館想重溫一下經典的How to solve it,發現了這本書。
這本書的序號稱Polya那本好是好,但是那時計算機算法還沒發展起來,今天已經有很多新的東西可以通過算法來解決了。
看了一下,覺得還挺不錯,尤其覺得它提出的一個觀點:
它認為課本上的教育是有問題的,因為解題時,我們更需要的是訓練自己想到一個解題的方法的思維,而不是訓練我們解題的某種特殊技術。
舉例來說,在線性規劃的章節里,我們做課后練習其實是很簡單的,因為我們已經知道該用什么方法去做了。
然而,如果給出了我們一個題目,我們也許博覽群書,知道N種技術,卻往往不知道該用什么方法去做!

這個想法正與我多年來的疑問不謀而合——為什么牛B的人會想到這道題該這么做呢?
為什么他們知道這個可以用貪心、那個可以用動態規劃,而另一個題又能用搜索?
我想這就是所謂的解題思路的訓練,這才是我心目中的真正牛B。

書里面的第一個問題就很有趣,據說作者拿這題問了很多理工科的大學生、教授,很多人竟然在一小時內也做不出答案。
所以書里建議,如果你不能在很短時間come up一個solution,那你的確該看看這本書了 :)

給定一個三角形,試證明AD+BD<AC+BC。

看不到圖的話點這里

No comments: