
266
|
第 8 章
生命的事實
這些都是相當嚴重且重要的問題,所以在試著處理這些問題之前,先讓我們快速的瞭解
運算世界的一些重要事實。其中的部分事實相當顯而易見,其他的就不是那麼明顯,但
它們全都是思考運算機器功能和限制的重要必要條件。
通用系統可以執行演算法
我們通常可以用諸如圖靈機、lambda 演算、部分遞迴函式等通用系統做什麼?如果我
們能正確瞭解這些系統的功能,那麼我們就能鑽研他們的限制。
運算機器的實際目的是執行
演算法
(
algorithm
);演算法是一成串的指示,這些指示描
述了將輸入值轉換成輸出值的某些過程,而這些指示應該要滿足某些準則:
有限
指令的數量有限。
簡單
每條指令簡單的足以由人以紙、筆執行,而不需動腦筋。
終止
遵循指令的人將根據任何輸入在數量有限的步驟完成。
正確
遵循指令的人將根據任何輸入產生正確的答案。
舉例來說,西元前 300 年左右的歐幾里德演算法是最古老的演算法之一,它需要兩個正
整數,並且會傳回將它們兩個都整除的最大整數,也就是它們的
最大公因數
(
greatest
common divisor
)。以下是它的指令:
1. 將
x
和
y
指定給這兩個數作為名稱。
2. 決定
x
和
y
何者為大數。
3. 以大數減小數(如果
x
是大數,就以
x
減
y
,並以此作為
x
的新值;如果
y
為大
數,就反過來執行)。
4. 重複步驟 2 和 3,一直到
x
等於
y
。
5. 當
x
等於
y
的時候,它們的值就是原來兩個數值的最大公因數。