(給演演算法愛好者加星標,修煉程式設計內功)
轉自:網路
熟悉計算機發展歷史的人大都知道,美籍匈牙利科學家馮·諾依曼(John Von Neuman)歷來被譽為“電子計算機之父”可是。數學史界卻同樣堅持認為,馮·諾依曼是20世紀最偉大的數學家之一。
他在遍歷理論、拓撲群理論等方面做出了開創性的工作。運算元代數甚至被命名為“馮·諾依曼代數”。物理學家說,馮·諾依曼在30年代撰寫的《量子力學的數學基礎》已經被證明對原子物理學的發展有極其重要的價值;而經濟學家則反覆強調,馮·諾依曼建立的經濟增長橫型體系,特別是40年代出版的著作《博弈論和經濟行為》,使他在經濟學和決策科學領域豎起了一塊豐碑。
無論史學家怎樣評價,美籍匈牙利裔學者約翰·馮·諾依曼(John Von Neumann , 1903-1957)都不愧為傑出的全才科學大師。人們至今還在津津樂道,這位天才人物的少年時代,竟請不到一位家庭教師……
事情發生在1931年匈牙利首都佈達佩斯。一位猶太銀行家在報紙上刊登啟事,要為他11歲的孩子招聘家庭教師,聘金超過常規10倍。佈達佩斯人才濟濟,可一個多月過去,居然沒有一人前往應聘。因為這個城市裡,誰都聽說過,銀行家的長子馮·諾依曼聰慧過人,3歲就能背誦父親帳本上的所有數字,6歲能夠心算8位數除8位數的複雜算術題,8歲學會了微積分,其非凡的學習能力,使那些曾經教過他的教師驚詫不已。
父親無可奈何,只好把馮·諾依曼送進一所正規學校就讀。不到一個學期,他班上的數學老師走進家門,告訴銀行家自己的數學水平已遠不能滿足馮·諾依曼的需要。“假如不給創造這孩子深造的機會,將會耽誤他的前途,”老師認真地說道,“我可以將他推薦給一位數學教授,您看如何?”
銀行家一聽大喜過望,於是馮·諾依曼一面在學校跟班讀書,一面由佈達佩斯大學教授為他“開小灶”。然而,這種狀況也沒能維持幾年,勤奮好學的中學生很快又超過了大學教授,他居然把學習的觸角伸進了當時最新數學分支——集合論和泛函分析,同時還閱讀了大量歷史和文學方面的書籍,並且學會了七種外語。畢業前夕,馮·諾依曼與數學教授聯名發表了他第一篇數學論文。那一年,他還不到17歲。
考大學前夕,匈牙利政局出現動蕩,馮·諾依曼便浪跡歐洲各地,在柏林和瑞士一些著名的大學聽課。22歲時,他獲瑞士蘇黎士聯邦工業大學化學工程師文憑。一年之後,輕而易舉摘取佈達佩斯大學數學博士學位。在柏林當了幾年無薪講師後,他轉而攻向物理學,為量子 力學研究數學模型,又使自己在理論物理學領域佔據了突出的地位。風華正茂的馮·諾依曼,靠著頑強的學習毅力,在科學殿堂裡“橫掃千軍如捲席”,成為橫跨“數、理、化”各門學科的超級全才。
“機遇只偏愛有準備的頭腦”
1928年,美國數學泰斗、普林斯頓高階研究院維伯倫教授(O.Veblen)廣羅天下之英才,一封燙金的大紅聘書,寄給了柏林大學這位無薪講師,請他去美國講授“量子力學理論課”。馮·諾依曼預料到未來科學的發展中心即將西移,欣然同意赴美國任教。1930年,27歲的馮·諾依曼被提升為教授;1933年,他又與愛因斯坦一起,被聘為普林斯頓高等研究院第一批終身教授,而且是6名大師中最年輕的一名。
在馮·諾依曼的一些同事眼裡,他簡直就不象是我們這個地球上的人。他們評價說:“你看,喬尼的確不是凡人。但在同人們長期共同生活之後,他也學會了怎樣出色地去模仿世人。”馮·諾依曼的思維極快,幾乎在別人才說出頭幾句話時,就立即瞭解到對方最後的觀點。天才出自於勤奮,他差不多天都工作到黎明才入睡,也常常因刻苦鑽研而神魂顛倒,鬧出些小笑話來。
據說有一天,馮·諾依曼心神不定地被同事拉上了牌桌。一邊打牌,一邊還在想他的課題,狼狽不堪地“輸掉”了10元錢。這位同事也是數學家,突然心生一計,想要捉弄一下他的朋友。於是用贏得的5元錢購買了一本馮·諾依曼撰寫的《博奕論和經濟行為》,並把剩下的5元貼在書的封面,以表明他 “戰勝”了“賭博經濟理論家”,著實使馮·諾依曼“好沒面子”。
另一則笑話發生在ENIAC計算機研製時期。有幾個數學家聚在一起切磋數學難題,百思不得某題之解。有個人決定帶著臺式計算器回家繼續演算。次日清晨,他眼圈黑黑,面帶倦容走進辦公室,頗為得意地對大家炫耀說:“我從昨天晚上一直算到今晨4點半,總算找到那難題的5種特殊解答。它們一個比一個更難咧!”說話間,馮·諾依曼推門進來,“什麼題更難?”雖只聽到後面半句話,但“更難”二字使他馬上來了勁。有人把題目講給他聽,教授頓時把自己該辦的事拋在爪哇國,興緻勃勃地提議道:“讓我們一起算算這5種特殊的解答吧。”
大家都想見識一下教授的“神算”本領。只見馮·諾依曼眼望天花板,不言不語,迅速進到“入定” 狀態。約莫過了5分來鐘,就說出了前4種解答,又在沉思著第5種…….青年數學家再也忍不住了,情不自禁脫口講出答案。馮·諾依曼吃了一驚,但沒有接話茬。又過了1分鐘,他才說道:“你算得對!”
那位數學家懷著崇敬的心情離去,他不無揶揄地想:“還造什麼計算機喲,教授的頭腦不就是一臺‘超高速計算機’嗎?”然而,馮·諾依曼卻獃在原地,陷入苦苦的思索,許久都不能自拔。有人輕聲向他詢問緣由,教授不安地回答說:“我在想,他究竟用的是什麼方法,這麼快就算出了答案。”聽到此言,大家不禁哈哈大笑:“他用臺式計算器算了整整一個夜晚!”馮·諾依曼一愣,也跟著開懷大笑起來。
關於馮.諾依曼有很多傳聞,什麼蒼蠅飛的路程問題啦,什麼嚇跑數學家胖子維納啦,什麼和計算機進行算術比賽啦,但這些都是老故事,還是讓我再告訴你幾則馮.諾依曼的故事吧。有一次(大約在製造第一顆原子彈的那會兒),義大利裔的美國物理學家塞格雷(他是諾貝爾物理學獎獲得者)和同事(也是個諾貝爾獎牛人)為一個積分的有關問題奮鬥了一個下午,卻毫無進展。這時他們從開著的門縫中看到馮.諾依曼正沿著走廊朝他們的辦公室走來,於是他們問馮.諾依曼:“您能幫我們解決這個積分問題嗎?”困擾他們的積分問題就寫在移動黑板上,馮.諾依曼走到門口,看了一眼黑板,立即給出了答案(大概花了3秒鐘),此時,塞格雷和他同事完全被嚇住了,因為他們根本不知道馮.諾依曼是怎麼這麼快就解決了這個難題的。
還有一個故事是這樣的:當馮.諾依曼在蘭德公司的時候,有個傢伙想向馮.諾依曼表演“硬幣問題”,什麼意思呢?也就是有一個厚厚的圓柱形的“胖硬幣”如果有適當的尺寸,那麼拋起來再落下去以後,正面朝上有1/3的可能,反面朝上也有1/3的可能,而以邊直立在桌面上也有1/3的可能,當這個傢伙向馮.諾依曼談起這個問題的時候,馮.諾依曼說:“是阿,這的確有那3種可能。”然後那傢伙說:“不如讓我們拋一拋這種硬幣吧?!”馮.諾依曼接著一邊計算出了這種硬幣的有關尺寸和機率的資料,一邊走開,前後只有不到1分鐘的時間,那時把在場的工程師都嚇壞了。
還有一個故事是這樣的:有一次,馮.諾依曼和同事(愛德華.特勒以及西拉德等等)乘坐兩架輕型飛機去一個地方。由於這些匈牙利人想討論一些事情,於是他們就合坐到了一架飛機上,當飛行的時候,有一架飛機上有一個科學家的圍巾被吹出了視窗,這些人立刻緊張起來,因為他們害怕圍巾是不是會捲進後面那架飛機上(也就是馮.諾依曼和同事愛德華.特勒等人一起坐的那架飛機)的螺旋槳,如此一下子就會毀掉那麼多的匈牙利智囊團。安全著陸後,他們以詼諧的方式描述他們對馮.諾依曼等人的擔憂:“我們在你XX尺以上,YY碼之前,空氣速度為ZZ。。。”。而馮.諾依曼立刻取用了一個後來被證明是正確的精確數字說:“這條圍巾打到螺旋槳的機率為SS百萬分之一。”
請記得,關於馮.諾依曼的公式是:(A)馮.諾依曼可以證明任何事情(B)馮.諾依曼所證明的任何事情都是正確的(這個公式據說在普林斯頓研究所很出名)
馮·諾依曼對科學做出的最大貢獻當然是在計算機領域。
1944年仲夏的一個傍晚,戈德斯坦來到阿貝丁車站,等候去費城的火車。突然看見前面不遠處,有個熟悉的身影向他走過來。來者正是聞名世界的大數學家馮·諾依曼。天賜良機,戈德斯坦感到絕不能放過這次偶然的邂逅。他把早已埋藏在心中的幾個數學難題,一古腦兒倒出來,向數學大師討教。數學家和藹可親,沒有一點架子,耐心地為戈德斯坦排憂解難。聽著聽著,馮·諾依曼不覺流露出吃驚的神色,敏銳地從數學問題裡,感到眼前這位青年身邊正發生著什麼不尋常的事情。他開始反過來向戈德斯坦發問,直問得年輕人“好像又經歷了一次博士論文答辯”。最後,戈德斯坦毫不隱瞞地告訴他莫爾學院的電子計算機課題和目前的研究進展。
馮·諾依曼真的被震驚了,隨即又感到極其興奮。從1940年起,他就是阿貝丁試炮場的顧問,同樣的計算問題也曾使數學大師焦慮萬分。他急不可耐地向戈德斯坦表示,希望親自到莫爾學院看一看那臺尚未出世的機器。多年後,戈德斯坦回憶說:“當喬尼看到我們正在進行的一件工作時,他就雙腳跳到電子計算機旁”。
莫契利和埃克特高興地等待著馮·諾依曼的來訪,他們也迫切希望得到這位著名學者的指導,同時又有點兒懷疑.埃克特私下對莫契利說道:“你只要聽聽他提的第一個問題,就能判斷出馮·諾依曼是不是真正的天才”。
驕陽似火的8月,馮·諾依曼風塵僕僕地趕到了莫爾學院的試驗基地,馬不停蹄約見攻關小組成員。莫契利想起了埃克特的話,豎著耳朵聆聽數學大師的第一個問題。當他聽到馮·諾依曼首先問及的是機器的邏輯結構時,不由得對埃克特心照不宣地一笑,兩人同時都被這位大科學家的睿智所折服!從此,馮· 諾依曼成為莫爾學院電子計算機攻關小組的實際顧問,與小組成員頻繁地交換意見。年輕人機敏地提出各種設想,馮·諾依曼則運用他淵博的學識把討論引向深入,逐步形成電子計算機的系統設計思想。馮·諾依曼以其厚實的科技功底、極強的綜合能力與青年們結合,極大提高了莫爾小組的整體水平,使莫爾小組成為“人才放大器”,至今依然是科學界敬慕的科研組織典範。
“電子計算機之父”
人們後來把“電子計算機之父”的桂冠戴在馮·諾依曼頭上,而不是第一臺電腦的兩位實際研製者,這並不是沒有根據的。莫契利和埃克特研製的ENIAC計算機獲得巨大的成功,但它最致命的缺點是程式與計算兩分離。指揮近2萬電子管“開關”工作的程式指令,被存放在機器的外部電路里,需要計算某個題目前,埃克特必須派人把數百條線路用手接通,像電話接線員那樣工作幾小時甚至好幾天,才能進行幾分鐘運算。
在ENIAC尚未投入執行前,馮·諾依曼就已開始準備對這臺電子計算機進行脫胎換的改造。在短短10個月裡,馮·諾依曼迅速把概念變成了方案。新機器方案命名為“離散變數自動電子計算機”,英文縮寫EDVAC。1945年6月,馮·諾依曼與戈德斯坦等人,聯名發表了一篇長達101頁紙洋洋萬言的報告,即計算機史上著名的“101頁報告”。這份報告奠定了現代電腦體系結構堅實的根基,直到今天,仍然被認為是現代電腦科學發展里程碑式的文獻。
在EDVAC報告中,馮·諾依曼明確規定出計算機的五大部件: 運算器CA、 邏輯控制器CC、儲存器M、輸入裝置I和輸出裝置O,並描述了五大部件的功能和相互關係。與ENIAC相比,EDVAC的改進首先在於馮·諾依曼巧妙地想出“儲存程式”的辦法,程式也被他當作資料存進了機器內部,以便電腦能自動一條接著一條地依次執行指令,再也不必去接通什麼線路。其次,他明確提出這種機器必須採用二進位制數制,以充分發揮電子器件的工作特點,使結構緊湊且更通用化。人們後來把按這一方案思想設計的機器統稱為“諾依曼機”。
自馮·諾依曼設計的EDVAC計算機始,直到今天我們用“奔騰”晶片製作的多媒體計算機為止,電腦一代又一代的“傳人”,大大小小千千萬萬臺計算機,都沒能夠跳出“諾依曼機”的掌心。馮·諾依曼為現代計算機的發展指明瞭方向,從這個意義上講,他是當之無愧的“電子計算機之父”。當然,隨著人工智慧和神經網路計算機的發展,“諾依曼機”一統天下的格局已經被打破,但馮·諾依曼對於發展電腦做出的巨大功績,永遠也不會因此而泯滅其光輝!
第二次世界大戰結束後,由於種種原因,ENIAC研製小組發生令人痛惜的分裂,“記憶體程式”的機器無法被立即研製。馮·諾依曼、戈德斯坦和勃克斯三人傳回了新澤西州普林斯頓大學。1946年,他們為普林斯頓高階研究院先期研製出新的IAS計算機(IAS即高階研究院英文縮寫)。
馮·諾依曼的歸來,在普林斯頓掀起了一股強勁的電腦熱。一向冷冷清清的研究院沸騰了,大批專業人才仰慕他的大名,紛至沓來,使普林斯頓高階研究院一時間成為美國電子計算機的研究中心。馮·諾依曼乘熱打鐵,著手將他那101頁計算機方案付諸實施。1951 年,這臺凝聚著他多年心血的EDSAC計算機終於面世,程式儲存在機器內部後,效率比ENIAC提高數百倍,只用了3563個電子管和1萬隻晶體二極體,以1024個水銀延遲線來儲存程式和資料,消耗電力和佔地面積亦只有ENIAC的三分之一。
在馮·諾依曼研製ISA電腦的期間,美國湧現了一批按照普林斯頓大學提供的ISA照片結構複製的計算機。例如,洛斯阿拉莫斯國家實驗室研製的MANIAC,伊利諾斯大學製造的ILLAC,雷明頓·蘭德公司科學家沃爾(W. Ware)甚至不顧馮·諾依曼的反對,把他研製的機器命名為JOHNIAC(“約翰尼克” ,“約翰”即馮·諾依曼的名字)。馮·諾依曼的大名已經成為現代電腦的代名詞。
在普林斯頓,馮·諾依曼還利用計算機去解決各個科學領域中的問題。他提出了一項用計算機預報天氣的研究計劃,構成了今天系統的氣象數值預報的基礎;他受聘擔任IBM公司的科學顧問,幫助該公司催生出第一臺儲存程式的電腦IBM 701;他對電腦與人腦的相似性懷著濃厚的興趣,準備從計算機的角度研究人類的思維;他雖然沒有參加達特默斯首次人工智慧會議,但他開創了人工智慧研究領域的數學學派;他甚至是提出計算機程式可以複製的第一人,在半個世紀前就預言了電腦病毒的出現……
1957年2月8日,馮·諾依曼身患骨癌,甚至沒來得及寫完那篇關於用電腦模擬人類語言的講稿,就在美國德里醫院與世長辭,只生活了 54個春秋。他一生獲得了數不清的獎項,包括兩次獲得美國總統獎,1994年還被追授予美國國家基礎科學獎。他是電腦發展史上最有影響的一代偉人。