Blog3

計算機在歐洲-5

1-5.艾達女士的演算法 艾達女士(1815~1852)有一個赫赫有名的父親,就是家喻戶曉的英國詩人拜倫男爵。 她母親安娜貝拉有不錯的數學天份,在和拜倫離婚後,為了不讓艾達沿襲她父親浪漫不羈的天性,聘請了家庭教師來加強她數學和科學的訓練。 但艾達同時遺傳了父母兩方的基因,以至於特別鍾情於所謂「詩意的科學」(poetical science),就是像計算機這種需要結合演算法,合乎邏輯、結構優美的科學。 巴貝奇的分析機從未真正運作過,但他所提的概念,例如數值儲存和算術運算分開,使用不同卡片輸入來執行不同運算等,讓分析機在概念上類似現代的電腦。 艾達是在社交場合認識巴貝奇,她能理解分析機的潛力,也協助翻譯義大利人描述分析機的論文,還加進了篇幅更長的「譯者評注」。 在1843年所寫的「譯者評注」中,艾達為後世留下兩個主要貢獻,也讓她因此名垂青史。 圖1-5-1.艾達女士圖像 其一,艾達認為,分析機不僅能做數值運算,還能做邏輯運算(例如比較判斷等),甚至,還可以處理音樂、影像等可供算術或邏輯運算的內容。 其二,她提出了現代電腦中「演算法」的概念,並以白努利數列舉例說明。 白努利數列是很複雜的無限數列,不好理解。我們可以用比較簡單的例子來認識何謂「演算法」。 例如我們知道直角三角形一邊為3, 一邊為4, 欲求其斜邊大小。 這個題目我們可引用畢氏定理「斜邊平方為兩直角邊之平方和」。所以先求3平方以及4平方之和後,再開根號得5。 在這個例子中,「先各求兩直角邊平方,將其相加後,再開根號」,即為本題之「演算法」。因為它是可以寫成程式,以計算出任何直角三角形的斜邊值。 另一個例子是從1加到10,1+2+3+4+5+6+7+8+9+10= ?。 我們用手算這題目,當然可以告訴自己,應該要一個一個慢慢加。但電腦並不懂什麼叫做「一個一個慢慢加」,你必須要教它如何進行「一個一個慢慢加」的程序。 你必須告訴它,「從1開始,每次加上一個比現有數字多1的數字,一直累加到10為止。」 上述過程,可以寫成迴圈(loop)程式碼,所以也是一種演算法。 簡單地講,「演算法」就是解答問題的步驟程序,並且可轉換成程式碼。「演算法」不一定要求出正確解,也可以只求出近似解︒ 愛達當年已經提出「次常式」的概念,也會使用遞迴的技巧,後世為表彰她的貢獻,美國國防部開發的程式語言Ada,就是以她來命名。 圖1-5-2.艾達的白努利數演算法

計算機在歐洲-5 Read More »

計算機在歐洲-4

1-4.巴貝奇的分析機 巴貝奇出生於1791年,是倫敦一位富有銀行家的兒子。在就讀劍橋大學三一學院時,他的早年學長︐偉大的牛頓︐,其輝煌的學術成就產生一些後遺症,導致英國的數學水平落後於歐洲大陸,原因是他的微積分點運算符號晦澀難懂。巴貝奇曾和好友們組織社團,提倡使用萊布尼茲簡明易學的微積分符號。 他在1822年寫公開信給皇家學會會長戴維,建議政府應支持他開發差分機,以因應大航海時代和工業革命大量的計算製表需求。所以從1823年起,英國政府開始長期提供經費製造「差分機」。 差分機是使用機械裝置(主要是齒輪和軸承),來進行對數、三角函數計算,甚至可以求得微分方程的近似解。 之所以叫做「差分」,是因為它可以將複雜的函數計算,簡化為大量的加、減計算,由機器來執行。 圖1-4-1.巴貝奇的差分機 巴貝奇的差分機除了計算功能之外,還預期可將計算結果列表輸出,如此便可大幅減少因人工抄寫造成的製表錯誤。 但差分機的機械困難度,遠超過事先所估計,巴貝奇畫了幾百張設計圖,始終沒有正式產品做出來。 更糟的是,到了1834年,巴貝奇居然向英國政府要求,希望增加撥款,讓他建造功能更強大的「分析機」。自此,政府信心喪失殆盡,決定中止撥款。巴貝奇接下來終其一生,只能運用自己的財力,來支應分析機的設計和製造。 分析機,其設計是更接近後來的計算機,它採用雅卡爾織布機的概念,不但使用卡片輸入,而且不同的卡片輸入可以做不同的計算,可說是一部具廣泛功能的機器,但複雜度更甚於差分機,當然,最終還是沒有製造出來。 巴貝奇傾盡家財、耗盡心力,終究一無所獲。他晚年時,在科學界影響力日漸式微,甚至被視為與現實脫節的奇怪老人。   圖1-4-2.巴貝奇的分析機

計算機在歐洲-4 Read More »

計算機在歐洲-3

1-3.雅卡爾織布機 早期織布機的操作方式,是靠人工用鉤子挑起選定的直向經紗,再用桿子把橫向的緯紗推到它下面,來進行編織圖案的動作。 1725年法國工人魯修為便於重複編織圖樣,在織布機套上穿孔紙帶;他的夥伴則在1726年改良設計,將紙帶換成相互串連的穿孔卡片。 以此機器為基礎,1801年法國人雅卡爾發明提花織布機。這種新型織布機,是利用卡片中所設定孔洞的位置排列,來決定所須啟動的鉤子和推動的桿子。 這部織布機變更連串的卡片來編織不同圖案時,無需更動機械設計,這是可程式化機器的里程碑。 圖1-3-1.雅卡爾織布機的運作 圖1-3-2.利用雅卡爾織布機所編織出的雅卡爾本人肖像

計算機在歐洲-3 Read More »

計算機在歐洲-2

1-2.萊布尼茲計算機 1671年,和牛頓幾乎同時發明微積分的德國數學家萊布尼茲,在出使法國之後,請巴黎機械專家協助,在1674年設計一台更完整的機械計算機,但始終沒有實用化。 他設計的這種新型機器,由兩個部份組成:第一部份類似加法器;第二部份屬於乘法器,多使用了兩排齒輪(被乘數輪與乘數輪)。 圖1-2.萊布尼茲乘法機

計算機在歐洲-2 Read More »

計算機在歐洲-1

1-1.巴斯卡計算機 1642年法國數學家巴斯卡,為減輕父親計算稅金工作的負擔,製造出一台可以運算加減的加法機。這些機械,是利用一組水平齒輪和一組垂直齒輪,以相互嚙合轉動的方式,來執行計算和自動進位的運作。1971年發明的程式語言PASCAL就是為了紀念這位先驅。 圖1-1.巴斯卡加法機

計算機在歐洲-1 Read More »

計算機在歐洲

第一章:計算機在歐洲 現代電腦,是使用電子電路來進行大量快速計算,但在電子學尚未出現之前,人們已懂得利用機械裝置來從事類似的工作。 在本章中,從17到19世紀的歐洲,我們介紹幾位重要的機械式計算機先驅。 他們當中,有的人成功地將開發的產品推向市場,獲得商業利益;有的人卻僅有先期研究報告,沒有具體成果產出,甚至受人嘲弄抑鬱以終。但無論如何,他們同樣在計算機的開發歷史中,各自付出了智慧和心力。

計算機在歐洲 Read More »

Shopping Cart