設萬維讀者為首頁 廣告服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:紅樹林
萬維讀者網 > 五 味 齋 > 帖子
《華爾街數學》書摘--飲水不忘掘井人
送交者: 零加一中 2013年09月07日10:48:40 於 [五 味 齋] 發送悄悄話
 

舅舅是一個優秀的科學家,一位染料塗料工程師,曾為中國的電泳塗漆工藝作出過重大貢獻。但最令人驚異的是他還是個色盲.

――題記――

本章《苦惱人的笑》說我在三個月內下班後的業餘時間完成了數理化的“鐵人三項”,其實還略去了一個很重要的細節。事情先要從我舅舅說起。

舅舅是一個優秀的科學家,是個色盲,卻是一位染料塗料工程師,曾為中國的電泳塗漆工藝作出過重大貢獻。他知識淵博,精通英法德日等好幾門外語,只是平時很難找到聽眾,所以每次我去,他就會很高興。他經常會給我講些很有趣的知識性的故事,有時也會考考我。舅舅是色盲,我也是,再加上兩個人經常談得十分投機,外婆就常說“外甥象舅舅”。

有一次去舅舅家,是考試,不是故事會。舅舅問我,籠子裡有雞兔若干,40個頭,100條腿,問雞兔各有多少。現在用二元一次方程解,自然是小菜一碟。但我一個小學生,哪會懂二元一次。舅舅提示,如果全部是兔子,有幾條腿。我乘法還沒忘,“160條”,顯然腿太多了。舅舅暗示道,那拿出一個兔子,換個雞進去,還有幾條腿?“158條”,還是太多。他繼續問,要拿多少兔子出來,把雞換進去,才能使籠子裡正好100條腿。到了這一步,向來是好學生的我自然明白了。   160 - 100÷4 - 2= 30。就是說,要拿出30個兔子。答案是10個兔子,30個雞。

舅舅接着拿出一本書,《四則運算應用題百題詳解》,叫我回家後去做。他反覆關照,不能用解方程的方法去做。其實我那時根本不懂方程,老人家實在是多慮了。他說用方程解這些題目太容易了,根本沒有意思。但如果能用四則運算解出,以後學方程就會容易得多。雞兔同籠只是其中一道中等難度的題。書後面有“詳解”,就是像舅舅那樣循循善誘的提示。我這方面的毅力應該說不錯,除非走投無路從不去看解答。如果沒辦法看了解答,那一定要徹底搞明白,變為自己的東西。做出這100題後,自己的邏輯思考能力確實大為提高。10年後我在短短幾星期內學會解各種代數方程,現在想來,必定得益於舅舅當年的“無心插柳”。

曾經有一次,我問舅舅,假定西瓜皮厚度相同,大西瓜和小西瓜哪個比較合算,就是說肉比較多。舅舅沒有試圖向我灌輸那些與微積分有關的圓球表面積和體積公式,他只是問我,如果西瓜是方的,皮也一樣厚,你覺得哪個合算。這我是會算的,一會兒就得出了結論,“買瓜要買大西瓜”。舅舅因勢利導,假如方的“大西瓜”邊長是“小西瓜”的兩倍,八個“小西瓜”疊起來,就和“大西瓜”一樣了。外面那層皮大家都有,但“小西瓜”們內部還有好多皮,所以你根本就不需要計算。一向自認為還算聰明的我簡直是無地自容。多年以後,我看到這樣一則故事。愛迪生(Edison)的實驗室招收了一個很優秀的大學生,有一次Edison叫大學生去計算一個電燈泡的容積(Edison是電燈的發明人)。好幾小時過去了,他過去看看怎麼還沒好。他看到大學生滿頭大汗,邊上放着軟尺、數學手冊、以及一大堆測量工具,顯然還沒完成。他就叫大學生去拿個量杯,自己拿着電燈泡把水灌滿,然後把水倒在量杯里。大學生當時的窘迫應該不亞於我在西瓜皮上摔的這一跤。舅舅和Edison還是無法相比,但兩個人教育方法卻有着異曲同工之妙。

更多的時候,舅舅的啟蒙教育是“寓教於樂”的。又有一次我去舅舅家,兩個人都閒着沒事,他就招呼我過去玩個遊戲。 他拿出15根火柴,分成三堆,分別為三根,五根,七根。 規則很簡單,兩人輪流拿,數量不限,誰拿到最後一根就算輸了。 唯一的限制是每次只能從同一堆里拿。我先拿是輸, 後拿也是輸,十幾個回合下來, 他見我實在不可救藥, 就把規則告訴了我。幾年後我看到一本書,裡面詳細介紹了這個遊戲以及決定輸贏的數學原理。 原來這遊戲並不限於三五七,堆數可以任意,每堆的火柴數也可任意,當然不用火柴也可以。 不管你如何變化,輸贏由一條相當簡單的規則決定,必須用二進位制表述。舅舅告訴我的關於357的規則只是其中的特例。

在完成Courant 數學研究所的博士後研究以後,正好美國在老布什(Bush)同志領導下昂首闊步進入經濟衰退,我只好靠漢語拼音的功底在紐約市教育局雙語教育部門混飯吃。當然這並非長久之計,於是聽從朋友建議開始學C 為在工業界找工作作準備。 這玩藝我以前也學過,但因為沒有動力,往往讀了第一章後就把書給丟一邊了,然後周而復始。 所以前幾章總讀了六七遍不止,但還是C盲一個。 因為無經驗可總結,只好總結教訓,發覺空對空是問題所在。 當初我學Fortran,就是為了完成一個課題,暑假修了三星期課。 三星期過後,學分拿到了,課題也完成了。

既然空對空不好,那就空對吧。 這塊地可是不好找,我於是想起了舅舅傳授的火柴杆遊戲。 因為這遊戲需要用到二進制,想來這塊地不錯。我於是就開始寫起來了,碰到問題就向書本請教。 如果還是三五七,一方面太簡單,而且沒準會被人琢磨出來。 我就把最多允許堆數和每堆最多允許火柴數加以擴大。 電腦里沒有火柴,我就用$符號代替。 三五七自然還是第一選擇,但挑戰者如覺得不過癮,可以選上十堆八堆的。 你可以和朋友玩,也可以和機器玩。這程序儘管很小,但用到的概念極多,等到寫完,書已經看了好幾遍了。 看來這塊是選對了。三個星期後,包括8個子程序的500多行程序堆在熒屏上,大功告成

前面說過,這遊戲的數學原理要用二進制表述,所以每一回合以後,先要做成百上千的除二,運算完成後再要做成千上百的乘二。 於是我重返故地,看看能否用二進制直接運算,真還給我找到了,就是所謂的二進制算符(bitwise operator) 程序很小,CPU 的差別無法看出,但我想和原來的“笨”程序相比,快二三十倍是起碼的,如果是一百倍我也不會驚訝。

我的電腦沒有C的軟件,於是我就去紐約大學(NYU)。 一切準備工作做好,一個回車,我把眼睛瞪得象電燈泡,希望看到編譯(Compile)成功。 沒這樣的好事! 一大堆從來沒見過的錯誤呈現在眼前。 我就找了個熟識的小朋友幫忙。 他稱讚我的程序寫得不錯,只是C的一些概念和Fortran太不一樣,所以出錯了。 兩小時不到,大功告成,這次可是沒有引號的,而且是0 + 1 型的。 一大幫小天才圍了上來, 要和我的代理人決一高低,結果都是(人)“肉包子”打狗,有去無回,即使是最簡單的357也毫無例外。

我還寫了個韓信點兵的程序。這個遊戲的訣竅可在《十萬個為什麼》上找到,三人成行七十稀,五樹梅花二十一枝,七子團圓是月半,除百零五便得知。你把一堆豆子用357數後的餘數分別輸入,一按回車,屏幕上就會告訴你這堆豆子有多少顆。我把這兩個程序的執行文件(EXE)放在一張碟片上,每次面試的時候都隨身帶着。如果有人想考考我對C是真懂還是假懂,我就用這357的遊戲擺個擂台,將那些面試我的經理主任殺個落花流水。

 最後借了我博士後指導教授的光,我總算在華爾街的一家軟件公司找到了第一份全職工作,主攻房屋貸款的模型,這張碟片還是沒用到。 我的第一個模型出來後,久久沒見到程序員完工的通知。原來他認為這反正是個初步的模型, 以後還會改, 就不浪費時間了, 他要等模型最後定稿後再來寫程序。 這人有MBA和計算機碩士兩個學位,可說是公司的首席程序員,但從這句外行話看來,他對模型實在是一竅不通。 我自告奮勇說,計算部分的程序我可以寫,但我不知道如何將結果與公司的軟體系統銜接。 公司的二老板說,銜接問題由他來做,我就負責計算,最後只輸出一個阿拉伯數字,他再把這數字輸入到軟體的其他部分,如繪圖列表等等。 我的老闆將信將疑,“你還會C?”我說不是寫在簡歷上嗎? 他說他也看到的,不過這年頭大家都這樣寫的,看來他早已做好了上當受騙的準備。 我把這張碟片的故事告訴他,他興致極高,叫我拿出來,在上班時間玩了好一陣子,最後毫無例外地成了“肉包子”。

這個遊戲在357情況下的規則,其實還是相當簡單的,就是要把一些必輸的圖形留給對手。如果對手瞎貓碰到死老鼠,把你逼上了死路,不要慌張,你要故作鎮靜,走一步緩兵之計。在大部分情況,對手又會回到錯誤的道路上,把機會還給你。

舅舅當時就是誘導我走不同的“死路”,從而把規則逐一介紹給我。你只要把火柴拿成下面的圖形之一,對手就輸定了。

(1)               111

(2)               123

(3)               145

(4)               246

(5)               兩堆相同

讀者可以很快推出,先走的會贏,只要在任何一堆只拿一根就贏定了,一步定乾坤。

這篇文章的題目頗費躊躇。我原想用“我的第一次0+1”,這也算切題,也能吸引眼球,但無法表達出文章的真正內涵。後來想到《無心插柳柳成蔭》,好友水玉表示不同意,他認為舅舅是有心對我進行啟蒙教育。思考良久,我覺得目前的題目儘管還有不盡人意之處,但最為準確地表達了我對舅舅的思念之情。舅舅的“潤物細無聲”式的教育,對我後來自學成才,考進大學,以至於後來找工作,都有着莫大的幫助。

這一切,應該說是超出老人家當初預料的。

0%(0)
標 題 (必選項):
內 容 (選填項):
實用資訊
回國機票$360起 | 商務艙省$200 | 全球最佳航空公司出爐:海航獲五星
海外華人福利!在線看陳建斌《三叉戟》熱血歸回 豪情築夢 高清免費看 無地區限制