堆栈溢出计划:我的步行时间机器
繁体版

第五章 历史

    次日上午,办公楼里,排队等电梯的人明显减少了。

    陈兮走出电梯,停了下来,愣在那里,足足有三十秒,我不是在做梦吧?

    熟悉的办公室不见了,前台也不见了,大门口的logo都被拆除了。

    空空荡荡的楼层,没有装修的样子,漏出了水泥柱子还有各种管道。

    一个人也没有,这哪是全球租金最高昂的写字楼啊,更像是个被核辐射后的废弃楼。

    陈兮回头看了一下楼层号,18楼。

    昨天已经搬到了19楼,他还是习惯性的来到了18楼。

    昨天下班时灯火通明的豪华办公楼,今天怎么就成了废墟之地呢?

    可能公司为了节约成本,解散团队后,办公室立即转租出去,新来者要快速装修,好尽快入住?

    陈兮这么给自己解释。随后步行来到了19楼。

    “Hi,老大今天比你早了吧,耶!”

    瞿晓波看到陈兮,上来热情的打着招呼。陈兮冷冷的回了个微笑,他还没有适应这个新的办公环境。

    年轻的程序鼓励师刚刚给每个人的桌子上摆上一杯咖啡,唯独没有陈兮的。

    看到陈兮,她愣了一下。

    陈兮来到座位前,指着自己的桌子,回头询问鼓励师:“小美,我的咖啡长翅膀了?”

    程序鼓励师睁大眼睛看着陈兮。

    她连忙道歉:对不起,马上给你冲上。

    咖啡随即送到,又是一阵贴心的劲椎揉捏,嘴里还不停的解释,声音还是那样的柔美。

    “帅哥,对不起啊,过了打卡点没看到你的优雅身姿,我以为……诶,最近走了那么多人,我以为你抛下我们,另谋高就了,都好几天了。你就算舍得抛弃他们,也不会舍得抛弃我的,我说得对不对,帅哥哥?”

    一阵糖衣炮弹打得陈兮无法招架。

    陈兮:怎么下面楼层一夜之间就拆了?

    鼓励师:一夜之间?不是拆了好久吗?

    陈兮:昨天不还在办公吗?

    鼓励师:昨天?昨天你在楼下?怪不得没看到你。

    陈兮怀疑鼓励师,记忆错乱了,不再询问,让她安心给自己放松才是正道。

    放松完毕,陈兮认真思考接下来的工作。

    很快布置了成员的工作,自己则考虑整个系统的构架。

    先把拉普拉斯系统做成一个独立接口,方便在启动后任何时刻引起崩溃。

    各种日志一定要做的足够细致,任何一个节点出现什么情况都要被记录下来。

    最后开发一个外部脚本,反复调用这个接口,每次调用理论上可以让时间前进0.999999秒,这样就可以通过调用次数来控制时间机器回到哪里。

    那些科幻作家心中高不可攀的时间机器,模型竟然如此简单,陈兮有些得意。

    但得意的还是有些早了。

    很多时候,事情看起来是一回事,做起来又是另一回事。

    (笔者注:前方高能关于时间机器的理论基础,看不懂不要紧)

    很快第一个难点出现了,拉普拉斯启动,会运行到哪儿崩溃呢?

    看似简单实则很难,因为当程序崩溃时,宇宙就会重置到引起崩溃前一秒,宇宙里的人并不知道这一过程,通常会认为什么都没发生。

    唯一的证据仅仅是多了一条被忽略的日志。

    陈兮打算采用了二分逼近法,一旦发现两条日志立即停止程序运行,时间增加值减半。

    虽然费了不少功夫,但也精确的找到了拉普拉斯导致宇宙崩溃的前一条指令。

    然后把整个拉普拉斯的状态和数据保存,下一次只要从这里运行,再运行一条指令,宇宙就崩溃,时间回退一秒。

    一个更棘手的问题是,宇宙崩溃后,会返回到引起崩溃的事件发生前一秒,这个事件如何定义。

    简单说就是,A启动了B,B导致了宇宙崩溃,它会回退到哪里呢?

    是A的前一秒,还是B的前一秒,同样的问题,无论它回到哪里,你都不知道这个事情已经发生了一次。

    毕竟时间机器就是采用这样的构架,完成之前需要无数次的测试。

    假设宇宙重置到了B的前一秒,测试一旦启动,宇宙便永远被卡死,因为当它重置到B的前一秒时,程序A会自动启动B,接着崩溃,接着再次启动,一直循环下去。

    另一方面,如果宇宙返回A的前一秒,那问题就复杂得多了,宇宙系统发现了它们两是关联的,存在因果关系,认定真正引起崩溃的原因是A,那么引起的A的原因是什么,它是否会向前回溯呢?

    没人知道,也许知道的人已经被封号了。

    不管是哪种情况,如果不做相关辅助工作,直接测试程序都将会引起不可预测的灾难。

    陈兮感觉责任重大,自己就是那个拿着潘多拉魔盒的思想怪物。

    一念成魔,一念成魔,原来说的是我?

    他想到了退缩,有可能时间机器永远也造不出来,不如早点改行,更大的可能是,世界被拖入无尽的深渊,或者瞬间毁灭。

    看了看周围的同事,还有那个可爱的鼓励师,假如所有人下一秒同时消失了,其实不存在任何的痛苦。

    现实情况或者宇宙系统并没有软件世界那么糟,至少有50%的概率可以通过这一关。

    陈兮还是要继续开发这个能够改变世界的程序,陈兮冥思苦想,必须设计出一个巧妙的解决方案,防止任何情况下把虚拟宇宙带入深渊。

    首先需要一个辅助程序H,H的功能是循环10次,每次间隔一秒,10次当中,有且仅有一次机会随机设置定时器T1

    其他9次设置T2,T1会启动程序A,T2则什么也不做只是写一条日志,记录自己的情况。

    这样,就算发生最严格的回溯,虚拟宇宙认为B引起了崩溃,而A引起了B,定时器T1引起了A。

    到了这里,又分为两条分支,T1是操作系统的功能,回到操作系统启动前一秒。

    另一个分支,T1被H改变,回到H前1秒,而H中只有10%的概率引起崩溃,这让陈兮几秒钟的思考时间。

    只要发现日志异常,就有机会终止程序。

    陈兮做好了一切准备,选择一个吉利的时间,来启动这个可能导致世界崩溃的恶魔。

    2041年6月7日,万年历上写着,农历五月初九,辛未日,宜开光,忌泡妞(婚嫁)。

    14:00:00,程序H被启动了,世界会毁灭,还是顺利度过没人知道。

    陈兮时刻提醒自己,日志异常,立即停止。

    他还没有启动程序,就莫名的感觉时间过了很久,于是赶快打开日志文件,无数条程序B的启动日志,占满了屏幕。

    程序竟然已经在运行了,他立即停止了所有运行中的程序,从椅子上蹦了起来,兴高采烈的跑去和每个人击掌庆祝。

    同事们傻傻的看着,象征性的伸出了手。

    瞿晓波不解的问道:老大怎么啦?

    陈兮:只有B的日志异常,没有向前回溯。

    大家叹了一口气,本以为他中大奖了,原来是在说胡话。

    陈兮坐下来静静的思考,虚拟宇宙必然是个无比庞大且复杂的系统,错误机制为何处理的如此简陋。

    简陋到只是返回引起崩溃前一秒,连向前回溯都没有,连进入死循环都不管。

    再此之前难道没其他高等智慧生物发现过?

    还是宇宙只有地球文明发展到了可以让宇宙崩溃的程度;或者只有我们的太阳系是虚拟的,外面只是一个简单的投影;又或者发现并利用漏洞的文明都被消灭了。

    无论如何,都让人难以接受。

    唯一希望的是自己的推断是错的。

    陈兮喝了一口咖啡,不敢再想这些可怕的事实,宁愿自己就是一个没有意识的NPC。

    他累坏了,找来活波可爱的鼓励师小美,小美耐心的给他做着肩部放松。

    陈兮很享受,他把脸靠在了鼓励师的身上,一来可以更好的放松颈部,而来还能感受到她的心跳。

    她的心跳,应该富有节奏,充满韵律,陈兮这么想着,这就是她的心跳?

    陈兮脸色大变,从椅子上蹦了起来,拉着小美往外跑,小美不知所措,尖叫着:放开我。