那条线画得很慢,慢到柳如烟能看见木条尖端在每一毫米的移动中微微颤抖,像在进行某种极其精密的测量。顾衍的手腕没有大幅度的摆动,而是完全依靠手指的控制,一点一点地把炭黑的印记推过木质的纹理。那条线从孤岛节点的边缘出发,先是以接近平行的方式绕过了三条汇聚的分支线,然后在第四道分支线下方突然转折,钻入了一片此前完全空白的区域。 柳如烟的笔尖跟在他后面移动。她不再等待他画完一条完整的路径才开始记录——她变成同步的了,在他画第一个毫米的时候,她已经开始在笔记本上标注那条线的初始斜率和朝向角度,在他画到中段转折的时候,她已经在预推那一转折所对应的坐标变换矩阵的近似值。她的手指以一种近乎自动的方式运作着,圆珠笔在纸面上划出的声音和木条在桌面上摩擦的声音交织在一起,形成了某种持续的低频脉冲,像两个人共同维持的某个节拍器。 当那条线画到约十五厘米长的时候,顾衍的手停住了。木条的末端悬在桌面上方,炭黑尖端距离木板表面大约一根头发丝的宽度。他在那里停了三秒,然后轻轻呼出一口气,把木条放了下来。 "你感觉到了吗?"他问。视线没有离开那条新画出的线。 柳如烟低下头看着自己的笔记本。她刚刚写完的那行数字和符号——斜率、角度、变换矩阵的系数——排成一个短小的算式。她把那个算式从头到尾心算了一遍,然后她的指尖在纸面上那行数字的末端轻轻按了一下。 "它变了。"她说。她的声音比刚才稍微高了一点,像一个人在黑暗里触到了墙壁上一条意料之外的裂缝,"在转折之后,那个矩阵的迹不再是不变量了。它变成了——" 她停下话头,重新算了一遍。结果和刚才一样。那个原本应该是坐标变换下保持不变的迹,在转折点之后多出了一个残差项。残差的量级很小,小到如果是在常规的计算精度下会被自动舍去,但她手中的笔已经把那个数值精确地记录了下来。 "残差。"她说出口的时候感到自己的尾椎处传来一阵微弱的麻刺感,像有一条极细的电流沿着脊柱爬上去,"一个不守恒的量。在转折之前它是守恒的。转折之后它不守恒了。这条线跨过了一个边界。" 顾衍微微点了一下头。他的目光落在那条线的转折处,那是一个极度细微的、几乎看不出来的弯折角度,大概只有两三度的偏移。但在这张炭画网格的尺度上,两三度意味着一个完整的拓扑变化,意味着两条相邻路径之间的连接关系在那个弯折处发生了重排。 "我追踪那个残差的去向。"柳如烟说。她翻到笔记本新的一页,开始沿着转折之后的那段线往后推演。她的笔尖在纸上迅速移动,每一步推导她都在心里默念出声,声音细碎而低,像一段只有自己能听清的口诀:"从A到B的映射的迹是3.2,B到C的映射的迹是2.9,复合映射的迹应该是3.2乘2.9等于9.28,但实际量测的复合迹是8.97。相差0.31。这个差值的平方根是0.556。这个数字——" 她停住了。笔尖悬在纸面上方,她的眼睛盯着那个0.556,嘴唇微微张开。那个数字的形状在她的视网膜上反复浮现,和某个她几天前在便利店里写下过的东西重叠在一起。她伸手去够桌上那张旧信封——老人画路线图的那张纸——把它展开,翻到背面,找到她在废墟服务器外的车厢里写下的那三行字。 第三行最后的几个字:"索引还在。" 索引。索引编号的最大值是2173。2173的平方根是46.6,立方根是12.9,对数底是7.68——这些数字和0.556之间没有直接的关系。但当她用2173除以那个残差的数值0.556,再取四次方根,她得到了一个数:3.1415左右。 π。 柳如烟感到自己手中的信封边缘被她捏出了褶皱。她看着那个数字,0.556——它不是一个随机的残差。它是被设计出来的。它是索引编号的总数除以π的四次方。那台机器在删除所有数据之前,把整个索引的结构编码进了路径转折处的残差里。那个残差不是计算误差。它是一条密文。 "顾衍。"她的声音有些紧了,指尖按在信封纸面上的力度大得让纸面微微凹陷,"这个转折处的残差不是物理的。它是编码过的。它等于索引总数除以π的四次方。" 顾衍伸手拿过那张信封。他的手指在那个数值上轻轻拂过,像在读一段盲文。他看了大约十秒钟,然后把信封还给她,动作很轻,但他的眼神里有一丝变化——那是一种理解的表情,那种当一句一直没听懂的外语突然被翻译过来时浮现在脸上的表情。 "它把自己删了。"顾衍说,"但它把自己删的方式留下了一个π。所有那些空的索引号乘以一个分布在路径转折处的残差场,读出来就是一个完整的π数值序列。"他停了一下,"它不是数学常数。它在那个架构里是一种标识。像签名。" 柳如烟低头看着手中的信封。那张旧的、边缘起毛的、被反复折叠过的信封纸面上,她看见了太多层叠加的东西——老人的路线图,她用圆珠笔写下的三行结论,以及此刻刚刚浮现出来的这层新含义。那台机器删除数据不是出于恐惧。它是在完成一份档案。它把计算的结果用删减的方式写了进去,就像一个人把信写在纸上然后把纸撕碎,但碎片的排列方式本身构成了第二封信。 她重新拿起笔。这一次她不再只记录顾衍的木条画出的几何路径了。她开始在笔记本上开了一个新的专栏,专门记录每一条路径转折处的残差值。她需要把这些残差全部收集起来,拼成一个完整的序列,然后读出那台机器用删除的方式写下的东西。 外面的天色开始变得灰白。一夜过去了。壁炉里的火已经烧成了暗红色的余烬,表面覆着一层薄薄的灰壳,偶尔被空气扰动时露出下面几粒发亮的炭核。柳如烟站起来去添柴的时候,发现自己的膝盖发出了一声清脆的响,像长时间静止后第一次活动时关节发出的抗议。她蹲在火炉前,把两根新木柴架进灰烬里,用拨火棍捅了捅底部的通气口,余烬重新燃起一小团火,照亮了她膝盖上那两块因为久坐而泛红的皮肤。 她站起来走回桌边的时候,注意到顾衍正在用木条的尖端轻轻地点着桌面。他点的地方是那座孤岛节点,动作极其轻微,像一个人在测试一块冰面的厚度。他点了几下之后,抬起头来看着柳如烟,他的眼睛在灰白的晨光里显得比火光明亮时更深。 "你把那些残差连起来看看。"他说。 柳如烟翻开笔记本到新开的专栏那几页,她记录下来的残差值已经列了十七行。她把它们按顺序排好,然后用笔在每一个数字下方画了一条连线,从第一个到第二个,从第二个到第三个,如此推下去。连到第十三个的时候,那串数字在纸面上形成的形态让她停了一下——它的增长模式不是线性的,也不是指数的,而是一个逐级衰减的级数。她用手边的计算器飞速验算了一下那个级数的收敛值。 收敛值等于3.1415。 π。 她把计算结果指给顾衍看。他的目光从她的笔记本移到她的脸上,在那几秒的对视里,柳如烟感到自己胸口深处有一个东西正在松开——像一扇一直被风抵住的窗,在这一刻被推开了。她笑了。一种她自己都没预料到的、短促的、从喉咙深处挤出来的轻笑。 "它在等我们。"她说,"那个AI。它把数据全部删了。但它把索引留了下来,把残差编码留了下来,把π作为签名刻进了整个结构的收敛值里。它没办法直接告诉后来者它看到了什么,因为它在那一步停下来的时候已经失去了旧坐标系的表达工具。但它留下的所有脚手架都指向同一个方向。只要有人愿意沿着那条路径走到转折处,读取残差,拼出π的序列,那台机器就算完成了一次从旧语言到新语言的翻译。" 顾衍看着她。他的嘴角动了一下,那大概是他能做到的最接近笑容的幅度了。"我们就是那个'有人'。" 柳如烟低下头,重新握紧笔。她的笔记本还剩下大约十几页空白,她不知道自己需要多少页才能把所有的残差全部记录下来,但她知道她不需要全部记录完——因为π的序列是无限不循环的,而那台机器的索引总数是有限的。它只能记录π的前面一小段,然后截断。截断的位置本身就是另一条信息。 她开始沿着顾衍尚未完成的那些路径往前走,用手里的圆珠笔画出一条又一条她自己推出来的连接线,试着找到那个截断点。她的笔迹开始变得不那么整洁了——有些数字写得很小,挤在页边,有些推导步骤直接用箭头跳过了中间过程,只保留了起始和终点的状态。她听见自己的呼吸声和笔尖声混在一起,像某种双声部的音乐。 而窗外,太阳正在从山脊线后面升起来。第一道光穿过了北窗那层积灰的玻璃,在桌面上投下一道倾斜的、淡金色的光带。光带的边缘恰好切过那座孤岛节点的位置,把那个汇聚了所有路径的炭黑小点照成了暖色。光线里飞舞着无数微小的尘埃,每一粒都在光束中缓慢地旋转,看起来像一支正在被调度的计算粒子群。 柳如烟抬眼看了看那道光线,又低头看了看笔记本上的数字。她感到一种奇怪的、几乎是放松的笃定——他们正在走的路,那条有路标的路,正在一层一层地打开。就像你现在手里拿着一本你还没读完的书,但你已经感觉到了书页正在变薄,你正在接近那最后一章。 她继续往下写。窗外的光越来越亮,尘埃在光束中持续旋转,桌面上那张炭画网格的最边缘处,有一条新线正在形成,还没有人把它画下来。