我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的「定理證明」,全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。
有一次某知名教授照著講義,背對著學生,在黑板上寫了大半節課,寫下好幾板的證明,證明的是 simply typed lambda calculus (stlc)的 strong normalization 特性(sn)。剛寫完就到下課時間了,他回過頭來喘了一口氣,說:「any questions?」沒有人啃聲,於是他說:「很好!下課!」
幾天後我問他,你證明了 stlc 有這個特性,然而你卻沒有告訴我它「為什麼」有這個特性。他神氣的看了我一眼:「你不懂嗎?」我說:「你的證明我看懂了大部分,可是乙個東西具有如此的性質,並不是因為你證明了它。這性質是它天生就有的,不管你是否能證明它。我想知道的是什麼讓 stlc 具有這個性質,而不只是證明它。」他說:「你問這樣的問題有什麼意義嗎?你需要非常聰明,並且需要經過大量的努力才能想出這樣的證明。」
兩年之後,我在 indiana 上了另外一堂程式語言理論課。教授是我之前的導師 amr sabry。他上課從來不帶講義,貌似也沒有準備,漫不經心的,卻每次都能講清楚問題的關鍵。於是有一天他也開始講 stlc 的 sn 特性。他說,我不想寫下這個證明讓你們抄,我只告訴你們大概怎麼去想。sn 的意思就是程式肯定會「終止」。所有會終止的程式,都會有乙個「特徵值」會隨著程式的執行而減小。你需要做的就是找到 stlc 的「特徵值」是什麼。接著他就開始在黑板上畫乙個圖……
過了一段時間,我不僅學會了這個「證明」,而且知道了 stlc 具有如此特性的「原因」。
從以上的故事,以及你的親身經歷中,你也許注意到了大部分的教育過分的重視了「證明」,卻忽略了比證明更重要的東西——「原因」。
原因往往比證明來得更加簡單,更加深刻,但卻更難發現。對於乙個事實往往有多種多樣的證明,然而導致這個事實的原因卻往往只有乙個。如果你只知道證明卻不知道原因,那你往往就被囚禁於別人製造的理論裡面,無法自拔。你能證明乙個事物具有某種特性,然而你卻沒有能力改變它。你無法對它加入新的,好的特性,也無法去掉乙個不好的特性。你也無法發明新的理論。有能力發明新的事物和理論的人,他們往往不僅知道「證明」,而且知道「原因」。
打個比方。證明與原因的區別,就像是犯罪的證據與它的原因的區別。證據並不是導致犯罪的原因。有了證據可以幫助你把罪犯繩之以法,可是如果你找不到他犯罪的原因,你就沒法防止同樣的犯罪現象再次發生。
古人說的「知其然」與「知其所以然」的區別,也就是同樣的道理吧。
王垠 原因與證明
我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的 定理證明 全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。有一次某知名教授照著講義,背對著學生,在黑板上...
原因和證明
作者 王垠 我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的 定理證明 全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。有一次某知名教授照著講義,背對著學...
皮克定理與證明
給定乙個網格,每個格仔由邊長為1的單位正方形組成。網格內有乙個多邊形,並且多邊形的頂點都在網格的交點處,也就是說頂點沒有乙個落在了單位正方形的邊上或者單位正方形的內部 記多邊形的面積為s,多邊形內部的點的個數為i,多邊形邊上的點數為a 則多邊形的面積為 s i frac 1 在這樣的形狀內 s s ...