第十一章 单程递归
首长扑向计算机,动作敏捷得如饥饿的鹰见到地面上的小鸡,令人恐惧。他熟练地移动鼠标,将时间滑标滑过零时点,在滑标进入未来时段的瞬间,——个错误提示窗口跳了出来:Stack overflo;让我们启动错误跟踪程序,step by step吧。quot;模拟软件退回到出错前,开始分步运行。当现实中的白冰将滑块移过零时点,镜像中虚拟的白冰也正在做着同样的事:错误跟踪程序立刻放大了镜像中的那台超弦计算机的屏幕,可以看到,在那台虚拟计算机的屏幕上,第二层的虚拟白冰也正在将滑块移过零时点;于是,错误跟踪程序又放大了第三层虚拟中的那台超弦计算机的屏幕……就这样,跟踪程序一层层地深入,每一层的白冰都在将滑块移过零时点。这是——套依次向下包容的永无休止的魔盒。
quot;这是递归,一种程序自己调用自己的算法,正常情况下,当调用进行到有限的某一层时会得到答案,多层自我调用的程序再逐层按原路返回。而我们现在看到的是无限调用自己、永远得不到答案的单程递归,由于每次调用时都需将上层的现场数据存入堆栈,就造成了刚才看到的堆栈存贮器溢出,由于是无限递归调用;即使超弦计算机的终极容量也会被耗尽的。quot; quot;哦。quot;首长点点头。
quot;所以,虽然这个宇宙中的一切过程早在大爆炸发生时就已经决定,但未来对我们来说仍是未知的,对讨厌由因果链而产生的决定论的人来说,这也是一个安慰吧。quot; quot;哦——quot;首长又点点头,他quot;哦quot;的这一声很长很长。