陳凱
當(dāng)人們計(jì)算“1加1等于幾”時(shí),頭腦中究竟發(fā)生了什么呢?對(duì)于這個(gè)問(wèn)題,腦神經(jīng)科學(xué)還無(wú)法給出一個(gè)確定的答案。但是顯然絕大多數(shù)人都知道,人們可以依賴(lài)機(jī)器,如加法器、電子計(jì)算機(jī)等——來(lái)做加法或其他各種運(yùn)算,可是很少有人問(wèn):為什么機(jī)器可以進(jìn)行計(jì)算呢?
從重寫(xiě)系統(tǒng)(Rewriting System)的原理來(lái)看,其實(shí)機(jī)器很容易通過(guò)字符串的重寫(xiě)來(lái)實(shí)現(xiàn)計(jì)算,如在做1加1等于多少的時(shí)候,機(jī)器所要做的就是把“1加1”這串字符串變成“2”這個(gè)符號(hào)。人們可以制定這樣一個(gè)規(guī)則,只要看見(jiàn)“1加1”,就替換成“2”。而任何計(jì)算,都可以通過(guò)替換字符串這樣簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)。人們?cè)趧?chuàng)造某個(gè)能夠進(jìn)行計(jì)算的機(jī)器時(shí),常以某些物體的外在狀態(tài),如水位、齒輪的齒的位置、電壓值或者其他什么來(lái)代表某個(gè)字符串符號(hào),然后通過(guò)改變物質(zhì)狀態(tài)來(lái)表示符號(hào)的改變??梢詫C(jī)器想象成一個(gè)“中文屋”(Chinese room),屋子里的人根據(jù)外部輸入的字符串符號(hào),通過(guò)查閱“詞典”得到轉(zhuǎn)換規(guī)則,然后根據(jù)規(guī)則進(jìn)行替換并輸出新的字符串符號(hào),這就實(shí)現(xiàn)了所謂的計(jì)算。
然而問(wèn)題是,這樣的替換方式看上去無(wú)法適應(yīng)各種不同的運(yùn)算(除非賦予機(jī)器的替換規(guī)則無(wú)限多,或是“中文屋”里有著可儲(chǔ)存無(wú)限多“詞典”的空間)。例如,不能為每一個(gè)加法,如“-1加4”、“-2加5”,都制定一條單獨(dú)的規(guī)則,當(dāng)然更無(wú)法解決諸如“將9開(kāi)平方”這樣的新問(wèn)題,那么,能不能找到某些簡(jiǎn)單的,但能適用于所有計(jì)算的規(guī)則呢?
羅素說(shuō):“邏輯是數(shù)學(xué)的青年時(shí)代,數(shù)學(xué)是邏輯的壯年時(shí)代”,這話其實(shí)給出了很重要的思考線索。若想讓一臺(tái)機(jī)器做數(shù)學(xué)運(yùn)算,先要讓它做邏輯運(yùn)算。這里就來(lái)介紹一個(gè)小實(shí)驗(yàn),利用“替換”來(lái)實(shí)現(xiàn)邏輯運(yùn)算,這個(gè)實(shí)驗(yàn)可以用紙筆來(lái)完成,看上去更像是游戲。不過(guò),必須連續(xù)做完以下4個(gè)實(shí)驗(yàn),才能說(shuō)明實(shí)驗(yàn)的目的究竟是什么。
◇實(shí)驗(yàn)1。
有一個(gè)20個(gè)字符的字符串:00120000000012000021,這串?dāng)?shù)據(jù)用來(lái)輸入,然后寫(xiě)下第二行數(shù)據(jù)用來(lái)輸出,從輸入數(shù)據(jù)到輸出數(shù)據(jù)的替換規(guī)則是:“看見(jiàn)120就換成012,看見(jiàn)021就換成210,看見(jiàn)1221就換成0000”,然后,將第二行數(shù)據(jù)也作為輸入數(shù)據(jù),重復(fù)運(yùn)行剛才的替換過(guò)程可見(jiàn):
00120000000012000021
00012000000001200210
00001200000000121200
00000120000000000000
00000012000000000000
……
00000000000000000012
◇實(shí)驗(yàn)2。
第二個(gè)實(shí)驗(yàn)的初始輸入數(shù)據(jù)與剛才的實(shí)驗(yàn)略有區(qū)別,具體替換過(guò)程就不都列出了。
輸入:00120000000000000021
……
結(jié)果:00000000000000000000
◇實(shí)驗(yàn)3。
輸入:00000000000012000021
……
結(jié)果:00000000000000000000
◇實(shí)驗(yàn)4。
輸入:0000000000000000021
……
結(jié)果:2100000000000000000
上述幾個(gè)實(shí)驗(yàn)其實(shí)模擬了一個(gè)邏輯運(yùn)算,若是將邏輯符號(hào)的輸入端,輸endprint