第三章 蝴蝶振翅

沈星河没有睡觉。

林瑾弦离开后的那个夜晚,她坐在三台显示器前,把同一个计算重复了三十七遍。

每一遍的结果都一样。

她不是一个会反复验证自己结论的人。在数学上,她对自己的判断有着近乎偏执的自信——如果一道题她做出来了,那就是做出来了,不需要检查第二遍。但这一次不一样。这一次的结果太疯狂了,疯狂到她宁愿相信是自己算错了,而不是这个世界真的存在一个用混沌理论杀人的凶手。

三十七遍。同样的输入,同样的参数,同样的曲线,同样的结论。

误差始终小于0.0003。

她靠在椅背上,仰头看着天花板上那些密密麻麻的公式。洛伦兹系统的方程被她用马克笔写在正中央的位置,σ=10,ρ=28,β=8/3——这三个参数她闭着眼睛都能写出来。大学二年级的时候,她曾经花整整一个学期研究这个系统,每天只睡四个小时,把能找的所有论文都读了一遍。那时候她以为自己在探索数学的边界,现在她才知道,她当时其实是在探索另一件事的边界。

顾维则的项目。

她闭上眼睛,试图把那个名字从脑海里驱逐出去。但它像一条顽固的虫子,钻进了记忆的缝隙里,怎么都赶不走。

三年前。大学数学系。她刚读完大二,被顾维则亲自选中进入他的实验室。那时候她是整个系里最耀眼的学生——连续两年专业第一,全国大学生数学竞赛一等奖,一篇关于混沌同步的论文被核心期刊录用。所有人都说她前途无量,说她是顾维则最得意的门生,说她将来一定会成为国内最年轻的数学教授。

她自己也这么以为。

直到那个雨夜。

她猛地睁开眼睛。不能想。想了就睡不着。睡不着就不能继续算。不能继续算就找不到答案。

她从椅子上站起来,走到窗前。窗外是沉沉的夜色,没有月亮,没有星星,只有远处城市方向的一抹模糊的光晕。老宅周围是一片安静的树林,偶尔有风吹过,树叶沙沙作响,像某种古老的、无法翻译的语言。

她想起林瑾弦离开时的表情。那个表情她见过——七年前,在高中走廊的尽头,夕阳把两个人的影子拉得很长,林瑾弦伸出手说“我叫林瑾弦”。那时候林瑾弦的表情是好奇的、友善的、带着一点点试探的。今天晚上的表情不一样。是担忧的、是心疼的、是那种“我看见你把自己关在笼子里但我不知道该怎么帮你打开笼门”的表情。

沈星河不需要别人帮她打开笼门。她自己关上的,她自己能打开。她只是还没有决定要不要打开。

手机震动了。

她拿起来,看到林瑾弦发来的消息:“我到市区了。你睡了没?”

沈星河没有回复。她走到桌前,重新坐下来,打开一个新的数据文件。这是她之前从公开渠道收集的气象数据——不是三起案件当天的数据,而是过去五年间所有与这三个地点相关的气象数据。她把这些数据输入洛伦兹系统,让系统自己寻找相似的模式。

显示器上的曲线开始跳动。一条,两条,十条,一百条。每一条曲线都是洛伦兹系统的一条可能轨迹,它们像一群受惊的鸟,在坐标系里翻飞、盘旋、交织。大多数轨迹是混乱的、无序的、没有任何规律可言的。但渐渐地,其中一条轨迹开始显现出某种结构——它不像其他轨迹那样随机游走,而是被吸引到了一个特定的区域,在一个有限的范围内来回振荡。

奇异吸引子。

沈星河的手指停在键盘上,看着那条轨迹。洛伦兹系统的奇异吸引子是混沌理论中最著名的图像——那只蝴蝶的翅膀。在相空间里,系统的轨迹不会重复自己,但永远不会离开那个吸引子的范围。它是混沌中的秩序,是随机中的必然。

而她现在看到的这条轨迹,不是自然生成的。是被引导的。

有人在系统里植入了一个隐藏的参数,一个微小的、几乎不可见的扰动,把轨迹推向了特定的方向。这个扰动太小了,小到如果不是反复计算三十七遍、如果不是对数据本身产生了直觉性的怀疑,她根本不会注意到。

但现在她注意到了。

她开始反向追溯这个扰动的源头。这是一个逆问题——从结果推导初始条件。在混沌系统中,逆问题比正问题困难一万倍,因为系统的敏感依赖性会让微小的误差被无限放大。但她有别人没有的东西:对顾维则代码的深刻理解。

三年前,她写过一段代码。那段代码的核心算法,正是她现在用来分析这些数据的算法。她比任何人都清楚这段代码的每一个分支、每一个函数、每一个可能被篡改的角落。

她一行一行地检查自己的代码。

前一千行,没有问题。前两千行,没有问题。三千行,没有问题。

她喝了一口牛奶,牛奶已经凉了。她没在意,继续往下看。

第五千三百二十一行的位置,她停住了。

这是一个条件判断语句,看起来很正常——如果变量X大于某个阈值,就执行A分支,否则执行B分支。但她注意到,这个阈值不是她最初设定的值。她最初设定的是0.618——黄金分割比。但现在这个阈值是0.617。

0.617。不是黄金分割。是一个质数。617。

她的手指微微发抖。

她继续往下翻。在第七千八百行的位置,她又发现了一个异常。一个用于生成随机数的函数,被她写成了基于系统时间的伪随机生成器。但现在这个函数被替换成了另一个版本——一个基于混沌映射的确定性生成器。这意味着,所谓的“随机”数据,实际上是可预测的、可操纵的。

她翻到了最后一页。

在代码的最末尾,一个不起眼的角落里,她看到了一个注释。注释只有三个字符:

// V

V。

顾维则。

沈星河猛地合上笔记本电脑,从桌前站起来。椅子倒在地上,发出一声巨响。她没去扶,只是站在房间中央,大口大口地呼吸着。墙壁上那些公式在她眼前旋转着,欧拉公式、傅里叶变换、高斯分布、纳维-斯托克斯——它们曾经是她的朋友,是她在这个世界上最信任的东西。现在它们变成了迷宫,变成了陷阱,变成了一张被顾维则精心编织的网。

她用了整整三年的时间试图逃离那张网。她退学、隐居、切断了与过去的所有联系。她以为只要不接触数学、不接触顾维则、不接触那个项目,她就可以安全了。

但她错了。那张网一直都在。顾维则一直在用她的代码。那些被她亲手写下的算法,正在被用于她无法想象的事情。

包括杀人。

她弯腰捡起椅子,重新坐下来。双手放在键盘上,却一个字也打不出来。显示器上的曲线已经停止了跳动,停留在奇异吸引子的图像上——那只蝴蝶的翅膀,美丽、复杂、永无止境。

她想起了林瑾弦。想起了林瑾弦站在门口转身离开时的背影。想起了她说“谢谢你帮我分析数据”时的语气。平静的、克制的、不追问的。林瑾弦从来都是这样。从高中时代起,她就知道什么时候该前进,什么时候该后退。她不会在你不想说话的时候逼你说,但她会一直站在你能看见的地方,等你准备好了。

沈星河拿起手机,看到林瑾弦后来又发了一条消息:“星期四下午三点,大学数学系,教学楼三楼。你确定程晚的东西还在?”

她当时没有回复。现在她打字回复了。

“不确定。但那是唯一的线索。”

发送。

林瑾弦几乎是秒回:“你不跟我一起去?”

沈星河看着这条消息,手指悬在屏幕上方。她该怎么回答?说她不能去,因为顾维则认识她?说她不敢去,因为那栋楼里有她最不想面对的回忆?说她害怕——害怕一旦踏入那个地方,就再也出不来了?

她最终打了这样一行字:“我不能去。顾维则认识我。我出现在那里,他会知道。他不能知道我在查这件事。”

发送。

林瑾弦的回复很快:“好。我去。你在家等我消息。”

沈星河看着这行字,忽然觉得眼眶有些发酸。不是因为悲伤,而是因为一种她已经很久没有体会过的感觉——被接住的感觉。就像一个在悬崖边站了很久的人,忽然有人走过来,说“你往后退,我替你去看看”。

她不应该让别人替她去。这件事是她的,从三年前那个雨夜开始,就是她的。程晚是她的室友,代码是她的算法,顾维则是她的导师。这一切都和她有关,和林瑾弦无关。

但她太累了。累到无法拒绝这个被接住的机会。

她打下了最后一行字:“小心。顾维则比你想的要聪明。”

然后她关掉了手机,走到窗前。天快亮了,东方的天际线泛起了一层淡淡的鱼肚白。树林里的鸟开始叫了,声音清脆而短促,像是某种摩斯密码。

她站在窗前,看着天色一点一点亮起来。那些鸟叫声渐渐密集,渐渐嘈杂,渐渐汇成了一片混沌的、无序的、没有旋律的合唱。但在那混沌的深处,她隐约听见了一个节奏——一个重复的、有规律的、像是某种信号一样的节奏。

嗒。嗒嗒。嗒嗒嗒。

三个一组。质数。

她猛地转过身,看向桌上的显示器。那台显示器已经进入了休眠状态,屏幕是黑的。但她在屏幕的黑色表面里,看见了自己的倒影——苍白的脸,凌乱的头发,和一双突然瞪大的眼睛。

她刚才听到的节奏,不是鸟叫。

是有人在敲窗户。

她住二楼。窗户外面是十几米的悬空。

沈星河站在原地,一动不动。她的心跳在这一刻变得异常清晰,每一下都像重锤敲在胸腔里。她的脑子里同时运行着两条线程——一条在计算从窗户爬到二楼的可能性、支撑体重所需的栏杆强度、以及所有可能的逃生路线;另一条在冷静地告诉自己:不要动,不要回头,不要露出任何你听到了的表情。

那个节奏停了。

她等了十秒。三十秒。一分钟。

什么也没有发生。

她慢慢转过身,走到窗户前。窗外什么都没有——没有梯子,没有绳索,没有人的痕迹。只有一片灰蒙蒙的晨光,和一棵老槐树伸过来的枝丫。槐树的枝丫离窗户大约有两米远,不可能有人能从树枝上跳到窗台。

她低下头,看向窗台。

窗台的边缘,有一小片湿润的痕迹。不是雨水——昨晚没有下雨。不是露水——露水不会只集中在一小块区域。

她弯下腰,凑近了看。那痕迹的颜色微微发黄,带着一种她无法描述的气味。不是化学品的味道,不是血液的味道,而是一种更原始的、更古老的味道。

泥土的味道。

有人把沾了泥巴的手指,按在了她的窗台上。

沈星河直起身,拉上窗帘。她的动作很慢,很稳,像在做一个已经被证明过无数次的数学推导。但她知道,自己的手在颤抖。

她走回桌前,打开笔记本电脑,点开了那个混沌模型。她没有输入任何新的数据,只是让模型在默认参数下运行。曲线在屏幕上跳动着,翻飞着,渐渐被吸引到了那个熟悉的蝴蝶翅膀形状。

她盯着那个形状,脑子里只有一个念头。

林瑾弦说得对。这不是意外。这是公式。

而她,沈星河,不仅是这个公式的见证者。她是这个公式的一部分。从三年前她写下第一行代码开始,她就是。

她拿起手机,拨通了林瑾弦的电话。

电话响了一声就被接起。林瑾弦的声音带着没睡醒的沙哑:“怎么了?”

“你说得对。”沈星河说,“这不是意外。这是公式。”

电话那头沉默了两秒。

“你算出新东西了?”林瑾弦的声音立刻清醒了。

“我算出了很多东西。”沈星河闭上眼睛,“但我需要你帮我做一件事。”

“什么事?”

“星期四下午三点,去大学数学系,找程晚的东西。在那之前,不要联系我。不要来找我。不要给任何人看我们之间的聊天记录。”

“沈星河,你——”

“答应我。”

长久的沉默。

“我答应你。”林瑾弦说,“但你也要答应我一件事。”

“什么?”

“活着。”

沈星河没有说话。她看着屏幕上那条仍在跳动的曲线,看着它被奇异吸引子捕获,看着它在蝴蝶的翅膀上盘旋、旋转、永不停歇。

“我尽量。”她说,然后挂断了电话。

窗外,天已经亮了。阳光穿过窗帘的缝隙,在地板上投下一道细细的光线。那道光线正好落在墙壁上洛伦兹系统的方程上,把σ=10、ρ=28、β=8/3这三个参数照得发亮。

沈星河看着那道光,忽然想起了一件事。

三年前,程晚失踪的前一天晚上,也是这样的天气——雨后的清晨,阳光穿过云层,把整个世界照得像一个过度曝光的照片。程晚站在宿舍的窗前,背对着她,说了一句她当时没有听懂的话。

“星河,你知道吗?蝴蝶效应最可怕的地方,不是蝴蝶扇翅膀会引起龙卷风。”

“那是什么?”

程晚转过身来。她的眼睛红红的,但没有哭。她只是看着沈星河,用一种沈星河从未见过的、近乎残忍的平静。

“是你永远不知道,自己是不是那只蝴蝶。”

第二天,程晚就消失了。

沈星河现在知道了。她不是那只蝴蝶。她是那个公式。

而顾维则,是写公式的人。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容