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

第一章 遇见

    2041年6月6日,软件谷。

    这里云集了全球最厉害的软件公司。

    8:05陈兮起床,比往常早一些,准备洗个澡再出门。

    一张黄色便签,贴在卫生间门上,很醒目,第一眼就看到它。

    昨晚加班太累回来就睡了,不是自己贴的,陈兮没有贴便签的习惯。

    家里再无他人,连宠物也没有。

    房间门锁的好好地,指纹锁,没有其他人来过的记录。

    摘下便签,上面三行字:

    不要洗澡;

    不要启动程序;

    nodeflow点org

    这分明是自己的笔迹,墨水已经渗透到纸里,微微向外扩散了些许,看上去不是新写的。

    右下角印刷着商标,字体很小,颜色很淡,陈兮懒得细看,这些广告真是无孔不入。

    既然如此,那是天意,给自己找了个借口,不用洗澡了。

    看着镜子里发油的头发粘在一起,也别有一番颓废之风,没准新来的程序鼓励师就喜欢这一款。

    便签放入口袋,出门上班。

    办公室,还没有人。

    “滋滋滋……噼里啪啦……”

    顺着声音转头看去,角落里的配电箱闪着火花,冒出蓝烟,散发出焦臭味。

    电路过载,眼看要着火了。

    陈兮跑过去,拉下总闸,拿起抹布扑灭了火苗。

    碰巧发现及时,没有造成损失。

    最近同事们加班太晚,离开时忘了关电源。

    陈兮坐到工位上,没电,无所事事,无聊的翻看着便签。

    那行细小的商品信息,引起了他的注意,“蔡伦纸业20410608”。

    F**k,今天是2041年6月6号,便签被随手扔到垃圾桶里。

    无良商家太可恶,连便签的生产日期都要伪造。

    陈兮趴在桌上休息,大脑还在寻思便签的事。

    这便签要是修改生产日期,还得再生产一张新的,替换旧的?

    这不可能。

    便签又被从垃圾桶找了回来。

    确实是自己的笔迹,千真万确,难道会是未来的自己写给现在的自己?

    6月8号,不不,至少是6月8号以后,好吧那就9号,穿越回来。

    那他为什么不当面告诉自己呢?

    陈兮继续推演着,未来的自己留下来,两人愉快写程序,到了6月9号,再次发生了穿越,回到6号。

    那就有四个我,写程序效率提高四倍。到了他们世界的6月9号,继续穿越……

    这不行,某个未知的平行宇宙,将被无限个我填充,直到系统崩溃。

    所以穿越是不可能的,这将引起宇宙无限递归,最终资源耗尽,宇宙坍塌。

    程序员的职业习惯,让他很快发现了穿越的漏洞。

    想到这里,陈兮豁然开朗,当然不是发现了穿越的bug,而是找到了思路,解决那个工程中困扰他多日的宕机问题。

    同事们已到岗,身材热辣的程序鼓励师,挨个通知成员,参加项目会议。

    会议如期召开。

    经理大发雷霆:快十年了,今天再拿不出稳定运行的版本,拉普拉斯项目立即解释,在座各位全部滚蛋。

    程序主管从宏观又一次解释了,项目面临的诸多困难,量子计算机出现不到20年,相应的软件环境并不成熟;拉普拉斯系统过于庞大,代码超过五十亿行,子系统接近一万个,光是整合及测试就花费了团队三成的工作时间。

    项目经理:好了,集团花钱请你来,不是为了听你说这些。陈兮,你作为主程,今天能不能给出一个版本?

    陈兮:能。

    惊讶的目光投向陈兮,当然不是吃惊他的能力。前几任信誓旦旦的主程,都离岗了。

    项目经理带着怒气离开了。

    团队成员继续讨论技术解决方案。

    面对人类历史上最复杂,最具革命性的仿真软件系统,帝国软件公司对拉普拉斯系统寄予厚望。

    因为一旦成功,它甚至能够主导未来宇宙的走向,人类将成为造物主。

    巨大的诱惑面前,所有软件寡头疯狂投资。

    行业内卷到了极致,甚至连程序猿们的头发都快掉光了,会议室内一片地中海。

    这一切都拜一位署名“印度洋季风”的电脑砖家所赐。

    “我们可以把宇宙现在的状态视为其过去的果以及未来的因。”

    两百年前伟大先驱,拉普拉斯提出这样假设,史称“拉普拉斯妖”。

    拉普拉斯妖揭示了宇宙的一切都已注定的,只要拥有足够的计算能力,透视过去,预测未来都将成为可能。

    量子力学的出现否定了拉普拉斯妖,科学界松了一口气。

    四十年前,人工智能和大数据开始蓬勃发展,特别近二十年来,量子计算机的出现,拉普拉斯妖有复活的可能。

    一种叫做量子门的逻辑电路被发明出来,基于这种电路的量子CPU,能够实现软件虚拟量子和现实量子的纠缠,在不引起现实量子态坍塌的情况下,实现了对量子状态的的观察。

    量子世界变的可以预测,同时虚拟量子和现实量子的纠缠,也间接证明了世界是虚拟的。

    专家“印度洋季风”改进了拉普拉斯推演方法:基于宇宙现在的状态是前一刻的果,前一刻是这一刻的因。

    我们记录下这两个时刻的状态,作为AI神经网络训练样本,找到因果规律;再逆推到上一时刻,重复这个过程;直到宇宙大爆炸前。

    最终我们能得到宇宙大爆炸前的所有状态,和状态之间的变化规律。样本足够多,结果足够准。

    再把宇宙初始状态输入模拟系统,模拟结果和观察宇宙对比,反复修正系统,直到模拟结果和观测结果一致。

    最后便得到了一个可以完全模拟宇宙演变的系统,学界称之为“图灵宇宙”。

    为了实现一个完美的“图灵宇宙”,帝国软件公司投入巨资开发了代号为“拉普拉斯”的模拟系统。

    ……

    技术会议继续进行。

    程序主管:陈兮,你确定今天能搞定?后果你知道的。

    陈兮:是的,刚才发现了可能导致问题的原因。

    程序主管:什么原因?修改难度大吗?

    陈兮:不大,系统从宇宙初始状态模拟到现在,结果和观测宇宙完美契合。说明系统本身没有问题。

    程序主管:这我知道。

    陈兮:当程序模拟到拉普拉斯系统启动之后,系统就会随机崩溃。

    程序主管:什么原因?

    陈兮:出现了无限递归。

    程序主管:为什么?

    陈兮:拉普拉斯系统以时间轴为坐标,从宇宙大爆炸开始模拟,包括地球和人类社会,也包括我们的行为。

    程序主管:没错,宇宙中任何一个基本粒子都要模拟,否则对后面的结果会产生巨大的影响。

    陈兮:当模拟到现在,模拟系统内部一个新的拉普拉斯程序启动,从头开始模拟,再次运行到“现在”,有一个拉普拉斯系统被启动。这个循环会一直持续,直到系统资源耗尽。

    程序主管:那好办,增加一个判断,模拟环境中不启动新的模拟程序。

    陈兮:是的,我计划这么修改。

    会议结束,判断条件加入到程序中。

    测试启动,拉普拉斯系统正常运行,程序运行到了“现在”。

    没有崩溃,系统越过了“现在”这个节点。

    团队没有庆祝,两分钟后,陈兮发现,拉普拉斯预测的短时间的宇宙状态,和观察结果有出入。

    团队再次召开会议。

    数学模型专家恍然大悟,指出问题所在,拉普拉斯系统也是宇宙的一部分,会对宇宙变化产生影响;被影响的宇宙反过来又影响拉普拉斯模拟系统。

    虽然影响微不足道,但是在足够多的迭代次数之后,误差累计也就很可观了。

    (注:拉普拉斯系统模拟宇宙一秒之间状态需要运算超过数十亿次)

    这就是经典的先有鸡还是先有蛋的问题。

    解决办法有两个,一是在另外一个平行宇宙中运行拉普拉斯。这是废话,没人能找到平行宇宙的入口。

    另一个是允许一定深度递归,在保证预测时间长度、精度和内存消耗之间找到平衡。

    第二种解决方案被采用了,预设条件,对未来一年精准预测。

    ……

    2041年6月6日13点14分49秒,拉普拉斯启动。

    128秒后,陈兮等待结果,拿出便签再次看了看,嘴角泛起一丝诡异的笑。

    团队成员们,很煎熬,就像末日审判。

    系统启动四分钟16秒后,拉普拉斯模拟器中的宇宙来到了,2041年6月6日13点14分49秒。

    系统通过了,继续运行。

    一秒钟后,眼前一道白光闪过,接着眼前一片漆黑。

    ……

    现实世界:时间来到了2041年6月6日13点14分48秒,一秒后,陈兮启动了拉普拉斯系统。

    128秒后,陈兮看了看便签。

    四分钟17秒后,眼前一道白光闪过,接着眼前一片漆黑。

    ……

    时间又回到了2041年6月6日13点14分48秒,一秒后,陈兮启动了拉普拉斯启动。