正文

11.單程遞歸

時(shí)間移民 作者:劉慈欣


首長(zhǎng)撲向計(jì)算機(jī),誰(shuí)都沒(méi)有見(jiàn)過(guò)他那么敏捷,如饑餓的鷹見(jiàn)到地面上的小雞,令人恐懼。他熟練地移動(dòng)鼠標(biāo),將時(shí)間滑標(biāo)滑過(guò)零時(shí)點(diǎn),在滑標(biāo)進(jìn)入未來(lái)時(shí)段的瞬間,一個(gè)錯(cuò)誤提示窗口跳了出來(lái):

Stack overflow……

白冰從首長(zhǎng)手中拿過(guò)鼠標(biāo),“讓我們啟動(dòng)錯(cuò)誤跟蹤程序,Step by step 吧?!?/p>

模擬軟件退回到出錯(cuò)前,開(kāi)始分步運(yùn)行。當(dāng)現(xiàn)實(shí)中的白冰將滑塊移過(guò)零時(shí)點(diǎn),鏡像中虛擬的白冰也正在做著同樣的事;錯(cuò)誤跟蹤程序立刻放大了鏡像中的那臺(tái)超弦計(jì)算機(jī)的屏幕,可以看到,在那臺(tái)虛擬計(jì)算機(jī)的屏幕上,第二層的虛擬白冰也正在將滑塊移過(guò)零時(shí)點(diǎn);于是,錯(cuò)誤跟蹤程序又放大了第三層虛擬中的那臺(tái)超弦計(jì)算機(jī)的屏幕……就這樣,跟蹤程序一層層地深入,每一層的白冰都在將滑塊移過(guò)零時(shí)點(diǎn)。這是一套依次向下包容的永無(wú)休止的魔盒。

“這是遞歸,一種程序自己調(diào)用自己的算法,正常情況下,當(dāng)調(diào)用進(jìn)行到有限的某一層時(shí)會(huì)得到答案,多層自我調(diào)用的程序再逐層按原路返回。而我們現(xiàn)在看到的是無(wú)限調(diào)用自己、永遠(yuǎn)得不到答案的單程遞歸,由于每次調(diào)用時(shí)都需將上層的現(xiàn)場(chǎng)資料存入堆棧,就造成了剛才看到的堆棧內(nèi)存溢出,由于是無(wú)限遞歸調(diào)用,即使超弦計(jì)算機(jī)的終極容量也會(huì)被耗盡的?!?/p>

“哦?!笔组L(zhǎng)點(diǎn)點(diǎn)頭。

“所以,雖然這個(gè)宇宙中的一切過(guò)程早在大爆炸發(fā)生時(shí)就已經(jīng)決定,但未來(lái)對(duì)我們來(lái)說(shuō)仍是未知的,對(duì)討厭由因果鏈而產(chǎn)生的決定論的人來(lái)說(shuō),這也是一個(gè)安慰吧?!?/p>

“哦——”首長(zhǎng)又點(diǎn)點(diǎn)頭,他哦的這一聲很長(zhǎng)很長(zhǎng)。


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)