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