2008年8月8日 星期五

Who guard the guard?

幾十年前,一群電腦精英創辦了FSF(Free Software Foundation),他們把他們的重要作品包命名為GNU,GNU的全寫為‘GNU Not Unix’,這可奇怪了,GNU又用GNU來定義!

這個當然是一個嘲弄,其實,這是一個基本的數學和電腦概念:遞歸(Recursive)。這就是用自己來定義自己!舉一個數學的例子。

n! = n x (n-1) x (n-2) x … x 1

例如:

5! = 5 x 4 x 3 x 2 x 1

但這又可定義成

n! = n x (n – 1)!
1! = 1

想一想,5! 就不是等如5x4!嗎?而4!又等如4x3!,一直再重覆下去,便會算到2!等如2x1!,關鍵就在這裏,遞歸函數要有意義,就必需有一個終結條件,這裏,我特別在定義裏寫下了,1! = 1,這亦即是說,到了1!便是計算的終結!

對很多初學電腦編程的人,很容易會忽略這個看似是常識的終結條件,若這樣編程,便會loop死(註一),即是電腦會沒完沒了地重覆,永遠都計不出答案來!

電腦就是絶對的理性,人可以不理性地對待電腦,但電腦就祗會理性地回應。程序員不寫下終結條件,電腦便會一直的計下去!

但當思考人文學科時,問題就大得多了。很多我們習以為常的東西,在深入思考和研究後,便會發現很多問題!最近,我便和一群將入大學的年青人,討論起貨幣問題。

‘港幣的價值是靠甚麼保證的?’

‘靠香港政府的外匯貯備。’

‘那麼,外匯貯備又是甚麼?’

‘大部份是美元資產及一些……’

……

‘總結上述討論,這即是港幣的價值是靠美元來保證,對嗎?’

‘對!’

‘那麼美元的價值又靠甚麼來保證呢?’

學生們語塞了,這其實是有答案的,但今次我不打算深入討論。我祗是想說明一點,當我們用B來定義A,我們也必需思考一下,B又是靠甚麼來定義,不停再追下去,便可能會得到一些驚人結果,其中之一,便是轉了幾步後,才發覺原來B是靠C來定義的,但最後,原來C又是靠A來定義的!原來我們沒有定義甚麼!

類似的問題,政治家便思考了幾千年,這就是Who guard the guard?這可理解成,‘誰去監察監察人’。例如,理論上,中國的皇朝理論上的最後監察人便是皇帝。但又由誰去監察皇帝呢?這個問題便留在下文再討論!

在我們正在生活的年代,這個問題又如何解決呢?若非常粗略的分類,這也可以分成東方和西方的想法。西方傾向相信人是醜惡的,特別是越有權力的人就越醜惡,所以,西方傾向以嚴格的制度和法律限制有權力的人不能作惡!先不下任何價值判斷,至少這從邏輯上是成立的,簡單來說,若把‘Who guard the guard?’看成一個遞歸問題,若用人來監察人,必然會出現loop死的問題。西方的思維,著重以抽象的制度、法律和普世價值,來作最後監察者,這便避開了無限遞歸的問題!

我很多國內的朋友初到香港,發覺香港人總是在罵政府的,他們可能會覺得這很不合理,難道香港政府就是這麼一無是處嗎?但按西方的普世價值,讚政府是百年以後,歷史學家的工作,‘現政府’祗可罵,不可讚!

回到中國的古代,中國並不流行如制度與法律等的精準抽象概念,最後監察者便是一個模糊概念:‘天’! ‘天子’之上便是‘天’,很多人會混淆‘天’和‘神’,‘天’並不是‘神’,‘天’其實就是社會價值觀、傳統和道德的大集成!‘天壇’是天子祭天的地方,但‘天壇’就連一個神像也沒有!‘子不語怪力亂神’,儒家本來就是一個無神論的思想!(或更準確的是‘敬鬼神而遠之’或‘存而不論’)

當我們思考政治制度時,是不是必需思考‘Who guard the guard?’這問題呢?


註一:由於某些原因,沒有終結條件的遞歸會產生stack overflow,而不是loop死。有機會再討論這個問題!

沒有留言:

網誌存檔