第4章 不承认

第二次组会是在周三。

我这次没有迟到。一点五十分就到了数学院 301,比所有人都早。不是因为责任心突然变强了,是因为我花了整个周末在脑子里反复播放走廊里那句"你现在还玩 Galgame 吗",放到最后我觉得与其在工位上继续想,不如早点来教室坐着。至少教室里的椅子比工位的椅子硬,坐得不舒服的时候脑子不容易乱跑。

我推开教室门的时候,里面是空的。投影仪没开,窗帘拉了一半,黑板上有上一节课留下的板书——某个本科生的线性代数课,矩阵的秩写到一半就下课了。我坐在讲台旁边的椅子上,翻开手机,打开了 Steam。

摇铃的头像灰着。当然灰着。

我盯着那个手绘的铃铛看了几秒钟。然后关掉。

两点整。小王第一个冲进来,手里拎着一杯奶茶,嘴里还叼着吸管。"学——长——好——"他把吸管从嘴里拔出来,"今天讲什么?选题还是算法?我回去把上周那篇论文看了,时间序列那个——那个叫什么来着,ARIMA 模型——然后我发现我真的没看懂。"

"没看懂正常。今天不讲那么深。"

"那就好那就好。"他坐到老位置上,把奶茶放在桌角,开始往外掏电脑。

赵一鸣和小陈前后脚进来。赵一鸣今天没外放刷短视频——他把耳机戴上了。小陈和上次一样,坐下来就开始翻笔记本,翻到上次记到的位置,又翻了一页新的。

林瑶是两点零三分到的。

她走进来的方式很平常——推开门的力度不大不小,往座位走的步调不快不慢,坐下的时候把双肩包放在脚边,从包里拿出电脑和一瓶矿泉水。这些动作和任何一个踩点进教室的本科生没什么区别。

但她看了我一眼。

就一眼。表情很淡,嘴角动了一下——算是打招呼。然后她低下头开电脑,左手无意识地转了一下手腕上的皮筋。

是那种普通的黄色橡皮筋,套在手腕上稍微有点紧。我之前没注意到。转了两圈,她松开手,皮筋弹回手腕上。啪嗒一声,很轻。

我把视线移开。

"好,我们开始。"我站起来走到黑板前,"上次讲了基本框架。今天具体说选题。省赛的题目一般分几个大类:优化问题、微分方程建模、统计与数据分析、图论。大家各自说一下自己擅长什么——小王,你先。"

"我——"小王举手,"数学基础一般,但是我会写代码。一些基本的算法实现没问题。"

"你会写什么语言?"

"Python。"

"够了。小陈?"

"数据处理。"小陈推了推眼镜,"Excel、SPSS、Python 的 pandas 都用过。不太会写复杂算法,但数据清洗和可视化还行。"

我点头。"赵一鸣?"

赵一鸣把耳机摘下来,想了两秒:"后端开发。Java 和 Python 都写。算法这块数据结构还行,机器学习懂一点但不多。"

"机器学习可以先不急。省赛的题目一般不需要太复杂的模型。"我看向最后一个位置,"林瑶?"

她正转着笔。听到我叫她,把笔停下了。

"统计学的东西我基本都学过。回归分析、假设检验、时间序列——这个还在学,这学期有课。概率论方面比较熟。"她想了一下,补充道,"还有就是——我比较擅长写论文。文字表达那部分。"

"你写过?"

"上学期写过一篇课程论文,关于城市空气质量与气象因子的相关性分析。"她说完看着我,像是等着我评价。

"常沙的?"

"对。用的就是常沙的数据。"

我愣了一下。不是因为她的选题——空气质量相关性是统计专业最常规的课程论文方向之一。是因为她说到"常沙"的时候,语气很平常,像是在说一个她本来就属于这里的城市。

"这个方向不错。省赛往年的数据类题目,环境和气象是高频考点。"我把视线从她脸上移开,转向黑板,"好,大家的背景我大概了解了。统计方面林瑶和小陈可以挑大梁,写代码赵一鸣和小王——"

"学长,那你呢?"小王举手,"周老师说你是时间序列方向的,论文也在做这个。你能不能给我们讲一下时间序列的基本思路?我想知道那个——怎么把一串数字变成预测。"

"可以。但今天先讲选题框架。时间序列放下次——"

"讲讲嘛学长!"小王双手合十。

"你刚才不是说你没看懂 ARIMA 吗?"小陈没抬头,翻着笔记本。

"没看懂才要学长讲啊!"

我叹了口气。然后转身在黑板上画了一条横轴、一条纵轴。"时间序列——最简单的理解就是,用过去的值预测未来的值。气温、空气质量指数、股票价格、超市销量——这些数据都是按时间排列的,时间序列的任务是找到变化的规律。"

小王掏出手机开始记。

"基本思路分三块。第一,判断趋势——整体往上升还是往下降。第二,判断季节性或周期——是不是每年冬天空气质量变差、每年夏天变好。第三,随机波动——排除前两种之后剩下的部分。"

"那预测模型呢?"林瑶的声音。

我转头看她。她没转笔,也没看手机——她在看着我。这种直接的视线让我犹豫了大概半秒。

"常见的有几种。指数平滑、ARIMA、SARIMA——如果带季节性的话。再复杂一点的用 LSTM 神经网络,但省赛一般不需要。"

"SARIMA 的参数怎么定?"

"看自相关图和偏自相关图。ACF 和 PACF。"

"你会教我们吧?"

"……会。"

她嗯了一声,低下头在电脑上打了几个字。她的手指在键盘上停了一下,然后继续打。

我没再看她。继续讲选题框架。

那个问题后来我觉得有点好笑——不是在问她会不会用 SARIMA。是在问"你会教我们吧"。她说的"我们",但我总觉得那个"们"是多余的。或者说,多余的不是"们"。


接下来两次组会,我开始注意到一些之前没注意到的东西。

第一次。小王在讨论选题的时候随口提了一句:"最近 Steam 上有个新出的游戏你们玩了吗——"话没说完,赵一鸣接了一句"哪个,你说那个 Roguelike?"两人开始激烈讨论。小陈一如既往,头也不抬地翻笔记,像是在说"组会时间不要聊游戏"。林瑶没参与讨论,但她抬头看了小王一眼——那个眼神不是"我不感兴趣",是"我在听但我选择不说话"。

第二次。小王说某次他和队友打竞技游戏,队友心态崩了开始摆烂,"那种感觉就像你们做题做到一半发现答案在背面——直接就不想做了"。小陈说"你这个比喻很精准但很没用"。大家都在笑。林瑶也笑了——然后她忽然看了我一眼。

那个眼神很短。大概一秒。

但我看懂了。

她在确认我有没有笑。或者说,她在确认我在不在这个瞬间里。

我移开了视线。

第三次。讨论数据来源的时候,林瑶说了一段话。她说常沙的气象数据可以在中国气象数据网上找到,空气质量数据在常沙市生态环境局网站上有公开 API。"我之前做课程论文的时候用过,所以比较熟。如果需要实时的——"她停了一下,"也可以写个脚本来抓。"

"你会写爬虫?"赵一鸣问。

"不会太复杂的。够用就行。"

"你一个人干的?"小王惊叹,"我的天——所以你是把整个论文需要的所有数据、所有分析、所有文字全一个人做了。那你还要我们组队干嘛。"

小陈推了推眼镜,难得开了口:"她做东西很快。而且认真。"

"那她上课的时候看起来可一点都不认真。"小王说。

"人家是在发呆还是在思考你分得清吗,"小陈的声音很平静,"你连 ARIMA 都没看懂。"

"你能别提 ARIMA 了吗!"

我听着他们拌嘴,忽然想起一件事。

大二打瓦的时候,摇铃说过一句话——"我高中数学考一百零五分的人,现在让我学大学概率论"。当时我在语音里笑了。但现在回想起来,我笑的时候她在干什么?她没有继续说。她只是把话题轻轻拨走了——"算了不说这个。你刚才那把残局为什么不往右拉,右边有掩体"。

她总是这样。把关于自己的话题轻轻拨走,然后转向你。

现在坐在这间教室里的林瑶,能一个人从头到尾写出一篇课程论文的林瑶,提到爬虫和数据接口时语气平淡得像在讨论今天食堂有什么菜的林瑶。她从来不提自己是怎么从一个"数学一百零五分"的人变成了现在这个样子。

好像这个过程不值得说。好像她觉得——只要结果是"到达了",过程就不重要。

我收回视线。在黑板上写了一个标题:选题评审标准


第四次组会结束的时候,我做了一件事后想来很蠢的事。

组员们陆续走了。林瑶在收电脑——她今天带了一个外接键盘,收的时候线缠住了。她低着头在解线,动作很耐心,手指一圈一圈地绕。

教室里只剩我们两个。

我站在讲台边,手里拿着那支粉笔——我也不知道为什么没放回去。

"林瑶。"

她没抬头,还在解线。

"嗯?"

"你——"我停了一下。粉笔在我手指间转了一圈,掉了。我弯腰捡起来,放进了粉笔槽里。

"你是不是以前玩过瓦?"

她的手指停了一下。只停了大概半秒。然后继续解线。

"学长。"她头也不抬,"现在应该讨论建模。"

她把电脑塞进双肩包,站起来,把包背好。走到门口的时候——和上次走廊里不一样,这次她没有回头。

门关上了。

我站在讲台边,手上有粉笔灰。我拍了两下,没拍干净。

她在避。

我确定了。摇铃就是林瑶。林瑶就是摇铃。

但我没有开心。不是因为确定了反而失落。是因为她的反应——不是否认,不是承认,是回避。这和她平时的风格完全不一样。林瑶说话直接、不拘谨、有问题就问、想到了就说。但她唯独在这个问题上——在"我们是不是早就认识"这个问题上——把门关上了。

为什么?

我想了大概两分钟。然后我想通了。

因为不承认的人不是她。

是我。

是我在三年前没有发出那条"好久没一起打了"。是我在聊天框里打了又删、删了又打、最后什么也没发。是我先消失的。她等了多久才退游的?我不知道。我只知道——我在发现她头像灰了的时候,第一反应是"她应该是换游戏了",而不是"我应该找她"。

现在她站在我面前了。但她不想先说。

因为先开口的那个人,等了三年。

我把粉笔槽里的粉笔码整齐。关灯。关门。

走回实验室的路上,我想了很多。想她提到的空气质量课程论文——用的是常沙的数据。想她问"你会教我们吧"时的语气。想她手腕上的皮筋——我从来没在游戏语音里见过她,但我知道她紧张的时候会有什么习惯。

不对,我现在知道了。


周五下午。第五次组会。我们正式开始分工。

"选题方向我建议往数据类靠。"我打开投影,"省赛的数据类题目通常会给出一段时间内的观测数据,要求建模预测。空气质量、水质、交通流量、能源消耗——这些都是高频考点。我们组两个统计的,有天然优势。"

"我做统计模型部分。"林瑶说,"小陈做数据预处理。赵一鸣写代码实现算法。小王——你会画图表吗?"

"我会画 Excel 图表。那种三维柱状图——特别好看——"

"用 Python 画。"林瑶说,"matplotlib。你让赵一鸣教你。"

"Py——什么来着?"

"matplotlib。"赵一鸣在旁边接了一句,"不难。比 Excel 好看十倍。我教你。"

我看着林瑶分配任务的样子。她坐在那里,手里没转笔,说话的时候直视每个人。语速不快,但很清楚。每个人负责什么、什么时候交、格式要求是什么——她甚至提前在电脑上列了一个任务文档。我扫了一眼:时间节点、交付物、格式规范、沟通规则——四年本科还没毕业,她写出来的东西比我带过的任何实习生的都要条理清晰。

"学长你觉得呢?"她忽然转向我。

"……挺好的。"我把视线从她的文档上收回来,"就按你说的办。"

"那你做的呢?"

"算法框架我来搭。Python 代码模板——赵一鸣在这个基础上改。论文框架和数学推导部分我写。"

"统计部分我写完之后你帮我看一下。"

"好。"

她说"好"的时候语气很平常。好像让我帮她看统计部分,和让小王学 matplotlib 是同一类事情——都是工作,不需要特殊标注。

但我注意到一件事。她没有称我为"学长"。

她对我说的那句"那你做的呢"和"好"——没有加上"学长"。

我不知道她是有意的还是无意的。但那个称呼的缺失,像教室里忽然安静了一下——没有人说话,但所有人都听到了。


那天晚上回到宿舍,我打开了《夕铃》。

铃音线共通部分的中间阶段。男主和铃音一起负责图书室的值日。每天放学后,两个人搬书、编排架号、清理旧书的灰尘。铃音的话很少——大部分时间她站在梯子上整理书架的高层,男主在下面把书递上去。两个人都没说话,但那个沉默不尴尬。

有一幕是男主在收拾的时候翻到了一本旧书,扉页上有人用铅笔写了一行字:"等一个人等太久的话,会忘记自己在等什么"。他拿着那本书站了很久。铃音从梯子上下来,看了一眼他手里的书,什么也没说。把书从他手里抽走,放到最高的一层架子上。

"放在这里的。"她说。

"什么?"

"那些不知道自己在等什么的东西。"

然后她转身上了梯子。

我存档。关掉游戏。打开 Steam。

摇铃的密码头。

我对着那个手绘的铃铛看了几秒钟。然后打开对话框。上一条消息还是三年前。她的"发你了"。我的"我不"。

光标在输入栏里闪。

我打了五个字:"你是林瑶吗。"

删掉。

打了四个字:"好久不见。"

删掉。

打了三个字:"对不起。"

删掉。

光标继续闪。我把电脑关了。

躺到床上的时候,我发现自己在想一个问题——我们现在的相处模式到底算什么。我知道她是摇铃。她知道我知道。但她不想谈。所以我也不谈。于是我们每周见两次,讨论选题、讨论数据、讨论回归模型和时间序列。她布置任务像在搬书架上的书——干净利落、从不回头确认。

她在等什么呢。

还是说——她不等了?

我把被子拉上来盖住脸。墙角的篮球上的灰比上次更多了。

张嚣在微信上发了一张截图——某个数学建模比赛的往年赛题合辑。下面跟了一句:"你们组能用得上。"

我回了个"谢了"。

他秒回:"你最近还打游戏?"

我说:"打。怎么了。"

他说:"没怎么。就是问一下。"

我问:"你怎么不问打什么游戏了。"

他说:"因为我知道你在打什么游戏。"

我看着那行字。张嚣说话从来不带多余的情绪。但他这句"我知道你在打什么游戏"——总让我觉得他不是在说 Galgame。

手机暗了。没有再震动。

窗外起了风。月鹿山的方向有树叶在响。常沙的九月快结束了。

第5章 两个人的教室

十月的常沙开始凉了。

不冷,但早晚需要加一件薄外套。月鹿山的树叶从深绿色变成了那种将黄未黄的颜色——远看还是绿的一大片,近看才能发现每一片叶子的边缘都已经开始卷了。数学系实验楼前的银杏倒是黄得早,地上落了一层浅浅的金色,踩上去有细碎的响声。

建模组的训练进入了实质性阶段。每周两次组会变成了每周三次——小王的基础需要补,赵一鸣要熟悉数学模型的代码实现,小陈在学 Python 的数据可视化。林瑶负责的统计模型部分进度最快——她已经把初步的回归分析框架搭出来了,用的样本数据就是常沙市过去三年的空气质量数据。

"你什么时候爬的这些数据?"我在一次组会上问她。

"暑假。"她盯着屏幕,没有抬头,"那时候还没开学,在家没事做。"

暑假。也就是说,在她走进数学院 301 之前,她已经在准备这场建模比赛了。不——在她知道我会带这个组之前。不对——她早就知道。

"你暑假就知道你要参加建模?"

她停下手里的键盘。"老周暑假前就发了通知。竞赛培训组的报名六月就开始了。"

"哦。"

她没再说别的。但我注意到小陈在这个时候看了林瑶一眼——很快,几乎看不出来。然后小陈低下头继续敲代码。

我知道那个眼神的意思。不是什么暗示,是一个知情者看着另一个知情者——而林瑶选择被看到。


十月中的一次组会结束后,其他人都走了。

林瑶留下来调试一个 SARIMA 模型。她用的是 Python 的 statsmodels 库——一个对参数设置很敏感的模型包。她在工位上坐了一个多小时,模型的 AIC 值一直降不下来,残差序列的 Ljung-Box 检验始终不通过。

"学长。"她忽然出声——隔了一个月,她又开始叫"学长"了。但不是每次。她只在需要我的时候叫。"帮我看一下。这个模型一直不收敛。"

"代码我看看。"

她往旁边挪了一下椅子。教室里空间很大,但她只挪了大概一个手掌的距离。我拉了一把椅子在她旁边坐下。

两个人并排坐着。她的电脑屏幕在桌上,左边是小陈留下的笔记本,右边的窗台上放着她的矿泉水瓶。桌子不宽,我和她之间大概隔了不到两臂的距离。近到能闻到她身上的洗衣液味道——不是香水,就是洗过的衣服挂着一点淡淡的味道,很干净。

我看她的代码。SARIMA(1,1,1)(1,1,1,12) 的模型阶数设置——对常沙的空气质量数据来说,季节项设得太高了。

"季节项降一阶。用 SARIMA(1,1,1)(0,1,1,12)。"我伸手去指屏幕上一行代码,胳膊和她肩膀碰了一下。就一下。她没动。我也没动。

"常沙的空气质量四季变化其实没有你想象的那么大。夏季和冬季差距明显,但春和秋基本是平的。季节自回归项不显著的话,加上去反而会带来噪声。"

"你做过这个?"她转过头看我。很近。近到我能看到她眼睛里有一点光——不是阳光,是屏幕的反射。

"……我之前做过类似的。我的毕业论文也做时间序列,所以对常沙的数据比较熟。"

"你论文写什么?"

"基于时间序列混合模型的空气质量预测。和你做的这个——八成像。"

"那这两个月你看着我在这里调模型调不出来,"她看着我的眼睛,"为什么不直接告诉我你做过了?"

"因为——"我停了一下。"你自己做出来的东西和你被告诉的东西,不一样。"

她看了我大概两秒钟。然后转回去看屏幕。

"季节项降一阶。"她重复了我的话,手指在键盘上敲。把 1 改成 0。运行。等待。十几秒后结果弹出来——AIC 降了。残差检验通过。

"可以了。"我说。

"嗯。"她没有说"谢谢学长"。只是嗯了一声。然后她靠在椅背上,眼睛盯着屏幕上的结果图,嘴角不自觉地弯了一下——那种问题解决了之后的满足感。

我看着她嘴角的那个弧度。和组会上第一次自我介绍时一样,往一边歪。但这次不一样的是——我知道她在忍什么。

忍的不是笑。忍的是不去说一句话。

然后一个窗口弹出来了。

电脑右下角。Steam 通知——一个小方块。黑色的背景上亮着绿色的字,很小,但我坐在她旁边,看得一清二楚:

「您的好友 谭飞学不会数学 已上线」

她的反应很快。快到我几乎以为是本能。鼠标移过去——点击——通知消失了。整个过程大概一秒。

然后她的鼠标继续停在刚才的位置。没有动。

她没说话。我也没说话。

教室里只剩下投影仪散热风扇的嗡嗡声。楼下的操场上有人在跑步,脚步声隔着窗户传进来,闷闷的。

我不知道过了多久。大概三四秒,也大概十几秒。

她没有解释。没有说"哦那是我之前加的"——她从不撒这种没必要的谎。没有说"你也玩 Steam?"——太假了。也没有说"那是你吧?"——她连装傻都不愿装。

她的沉默本身就是回答。

我看着她的屏幕。然后继续看代码。像是刚才什么也没发生。

"残差检验通过了之后,下一步做预测。把预测区间画出来,和实际数据对比——"

"学长。"她打断我。

"嗯?"

她张了张嘴。我能看到她的嘴唇动了一下——像是准备说一个词的开头。

然后她闭上了。

"没事。预测那块我明天搞定。我有点困了,先回去。"

她开始收拾东西。这次动作不慢——电脑合上、鼠标拔掉、外接键盘卷好线塞进包里。然后站起来,把双肩包甩到肩上。走到门口的时候,她停了一下。

没有回头。手搭在门框上。

然后回头了。

那一眼——我不知道怎么形容。不是愤怒,不是委屈,不是期待。是一种"我已经说了半句,剩下的半句你自己来"的眼神。然后她转回去,推开门,走了。

门自己弹回来,轻轻碰在门框上,又弹开了一点点。最后停在半掩的位置。

我坐在她刚刚坐过的椅子上。椅子还留着她坐过的温度,已经不太明显了,但能感觉到。屏幕上的 SARIMA 预测曲线还在——蓝色的实线是预测值,灰色的区间是置信带。曲线从右端延伸出去,往未来划了一条平滑的弧线。

她确认了我是谁。她早就确认了——可能比我确认她还早。

Steam 好友上线提示。"您的好友 谭飞学不会数学"。那个昵称是大二取的。那时候我把数学系学得一塌糊涂——线性代数第一次考试只考了七十分——一气之下把 Steam ID 从"谭飞的飞"改成了"谭飞学不会数学"。后来数学学会了,名字没改。

她一直留着我的 Steam 好友。三年。灰色的头像一直躺在列表里。没删掉。

而我呢?我留着她的。我不但留着,还每隔一段时间就点开看一眼。我告诉自己那只是习惯。但习惯不会让人在凌晨一点盯着一个灰色的头像想它什么时候再亮起来。

她知道。我也知道。

但我不捅破。

不是因为我不确定。是因为我终于确定了之后,反而不知道该说什么。那句"你是摇铃"——太蠢了。我早就知道。"你当年为什么退游?"——轮不到我问。是我先消失的。她等了多久才退游?我不知道。我只知道她等了。

我发现自己没有资格。

于是沉默。

我关掉她的电脑——她没关机就走了——屏幕暗下去以后,教室里只剩下投影仪的蓝光。我拔掉她的充电器,把她的矿泉水瓶拧紧瓶盖放在讲台上,然后关灯。门半掩着的时候走廊的灯光从缝隙里渗进来,照在她坐过的椅子上。椅子空着。

我拉上门。

走出数学院的时候,银杏叶子在路灯下铺了一地金黄。我站了一会儿,看着那些叶子。

然后回了宿舍。

没有打开《夕铃》。没有打开 Steam。没有打开手机。

只是躺着。

天花板上有一道细细的裂缝,从墙角往中间延伸了大概二十厘米。我盯着那道缝看了很久。然后翻了个身。再翻回去。凌晨两点的时候,我拿起手机,打开了和摇铃的 Steam 聊天框。

没有打任何字。只是往上翻。翻到最上面——第一条消息。她发的:"加个好友,下次一起。"

那是四年前的冬天。

第二条:"明天还打吗?"

第三条:"今天太晚了不打。下次。晚安。"

第四条、第五条、第六条。一路往下滑。每一条都是她先发。偶尔是我先发——比例大概是一比七。滑到中间,"你是不是最近状态不太好"——那条之后是我说"可能吧"。她回了一个小猫的表情——Steam 默认的表情包,很丑的那个。

再往下。"诶,你要不要去玩一下 Galgame"——"不玩"——"你都喊人妈妈了"——"你能不能别提了"——"发你了"——"我不"。

停了。

往下没有了。

我把手机放到枕头旁边。屏幕暗了。天花板上那道缝还在。

凌晨两点十分,我重新拿起手机,打开了和林瑶的微信——建模组拉了一个群,组员的微信我都有。她的头像是一只手绘的猫,表情是那种被什么东西吓了一跳的样子。朋友圈三天可见,签名是空的。

我打开她的聊天框。打了字,删掉。打了一行,又删掉。

关掉微信。

躺回去。

天花板上那道裂缝从墙角往中间延伸了二十厘米。五年了,这间宿舍我来来回回住过无数次,从来没注意过天花板上有一道缝。

第6章 十二月的事

进入十二月以后,常沙的冬天正式开始了。

和北方的干冷不一样,常沙的冷是湿的——温度看着也就五六度,但那股冷气能钻进骨头里。月鹿山的树叶终于落光了,从实验楼的窗户望过去,山的轮廓第一次这么清晰,像用铅笔勾了一条线。早上出门的时候能哈出白气,晚上从实验室回宿舍要裹紧外套。

我不喜欢常沙的冬天。但我开始喜欢每周三次的组会。

这个变化是我在十二月的第一个周三发现的。

那天下午两点开会。我上午洗了个澡。不是那种"今天该洗澡了"的洗澡——我周一刚洗过。是那种站在淋浴间里花了好几分钟洗头发、洗完以后对着镜子看了看自己的脸、然后把那件领口已经松了的卫衣扔进洗衣篮、从衣柜里拿了一件新一点的出来。

半年前张嚣生日的时候我们几个人送了件卫衣。灰色,胸前印了一个很小的数学符号——拉格朗日量的那个花体 L。我一直没穿。不是不喜欢,是懒得拆标签。

周三下午一点半,我拆了标签,穿上了那件卫衣。

走出宿舍的时候冷风从走廊尽头灌进来,我把拉链拉到最高,手插在口袋里往数学院走。路过食堂的时候看到玻璃门上映出自己的人影——头发是刚洗过的蓬松,卫衣是新的,眼镜擦过了。看起来不像研三的,像一个刚上大二的、还没有被数学折磨过的本科生。

我站住看了一下。然后继续走。

两点整。组会在 301。今天的主题是模型调优——小王在做数据可视化的时候发现了一个问题,八月的数据有一周缺失,需要补全。大家讨论了一下补全方案:均值填充、线性插值、用相邻年份同期数据代替。最后林瑶选了线性插值——"简单,不容易引入偏差"。

"你选的永远是最简单的方法。"小王说。

"因为最简单的方法通常是最好的。"林瑶把他画的那张三维柱状图投影到屏幕上,"比如你这张图——你觉得它很好看,但你告诉我,从这个角度看,七月的峰值是八月的一点几倍?"

小王眯着眼睛看了五秒钟。"……我算一下——"

"你算不出。因为三维柱状图的角度本身就是失真的。二维的折线图就够了。"

"我学了一整个周末的 matplotlib!"

"那你下周学一下二维折线图。"

小王发出一声悲鸣。小陈在旁边推了推眼镜,像是想笑但没有笑出声。

我在旁边看着。我发现林瑶批评人的时候不带任何情绪——她只是在说事实。小王不会觉得自己被骂了,他只会觉得"哦,确实是这么回事"。这是一种天赋。或者说——一种练习。她在游戏语音里指挥残局的时候,用的就是一样的语气。"对面捷风在 B 门"——不是在指责你为什么没架住,是在告诉你现在的情况,让你自己判断。

我发现自己开始注意这些东西。


那天深夜,我打开《夕铃》,推到了一个以前没注意过的场景。

铃音线中段。冬天。女主给男主织了一条围巾——浅灰色的,针脚不太整齐,一看就不是什么手巧的人织的。她把围巾给了男主,男主说"你不用这样的"。她说"我想这样"。然后男主收下了,围在脖子上。铃音看了他一眼,转过去继续走,说"颜色还挺配你的"。

一个很小的场景。大概两百行文本。

但我存档了。然后对着屏幕发了一分钟的呆。

我关掉游戏。打开 Steam。

摇铃的头像灰着。

从九月到现在,三个月了。我们每周见三次——讨论选题、调模型、改论文、拌嘴。她坐在靠窗的第二个位置,我站在讲台旁边。她的笔帽敲下巴的声音、转手腕上皮筋的声音、说"学长"和不说"学长"的间隔——所有这些我都记住了。但她从来没有上过 Steam。

一次都没有。

为什么?

答案不难猜。但也因为不难猜,我不敢确认。

灰色的铃铛在好友列表里,带着"3 年前"的离线标注。我把它往上拖——Steam 可以给好友分组。我新建了一个分组,叫"1"。然后把摇铃拖了进去。

分组里只有一个好友。

灰色的时候分组看起来是空的。但我知道她在里面。

我把 Steam 关了。


第二天组会结束后,张嚣在球场等我。

数学院旁边的露天篮球场,两盏路灯,水泥地面磨得发白。张嚣一个人投篮,球打在篮板上的声音在冬天的夜风里听得很清晰。

"来半场?"他看见我过来,把球传给我。我接住,拍了三下。

"好。"

一对一。没有什么正式规则——就是你投完我投,你给我防我给你防。张嚣比我壮,他的进攻都是一步过的——不花哨,就是比你快。我的优势是投射——三分线外两步以内的位置,我的命中率还行。

第一个球他过了我,上篮得分。第二个球我在三分线外出手——进了。

"你最近不对劲。"张嚣捡球,拍了两下。

"怎么了?"

"穿这么干净。"

我低头看了看自己——灰色卫衣。那个花体 L 在路灯下反着一点光。"……这不正常吗。"

"平时你那件蓝色的穿了两年了吧。"

"两年半。"

"那就对了。"他把球传给我,"建模组?"

"嗯。"

"组里有女生。"

这不是疑问句。张嚣很少用疑问句。

"组里有四个人。"我把球投出去。没进。砸在前框上,弹回来。

张嚣捡了球,站在三分线外,没投。

"那个学妹,是不是叫林瑶?"

我愣了两秒。

"你怎么知道?"

"老周说的。"

"老周什么时候跟你说的?"

张嚣出手。三分。球划了一道不怎么好看的弧线——他投篮姿势一直不对,是那种用肩膀推出去的——但还是进了。球穿过篮网的声音清脆地响了一下。

"前两天我去他办公室交论文。他随口说的。"

"他说什么了?"

"他说让你带组是他故意的。"

张嚣走到篮下,把球捡起来。转过身看着我。路灯照在他脸上,表情和平时一模一样——没有得意,没有八卦,只是在说一个他知道了的事实。

"组里有个女生,统计的。专门点名要数学系研究生带。她拿着你的名字找的老周。"

我站在三分线外。手垂着。

"老周问她为什么,她说她认识你——不算认识,知道你的名字,知道你是数学系的研究生。她说如果学长能带建模组的话,她就报名。老周答应了。然后来找了你。"

张嚣把球扔过来。球砸在我胸口上,我没伸手。球掉在地上,弹了两下,滚到场地边上。

"她找你是九月初的事。老周是九月中才来找你的。"

九月。建模组第一次见面是九月。

而林瑶报名是在六月份。小陈说过——老周暑假前就发了通知。报名六月就开始了。

也就是说——她在六月就已经想好了。

不。不对。六月报名、暑假爬数据。那她查到我名字是什么时候?查到我导师是谁是什么时候?看到保研公示名单是什么时候?把名字截图存下来是什么时候?

"你没事吧。"张嚣的声音从球场的另一边传过来。

我蹲下去,把球捡起来。手有点僵了——不只是因为冷。

"你说——有人拿着你的名字,专门来找你的导师,说想让你带她的建模组。你觉得这种情况正常吗。"

"不正常。"张嚣说。

"那——"

"但她不是第一天认识你。"

他走过来,从我手里把球拿走。运了两下,上篮。球打板入筐,落下来的声音在空旷的球场里弹了一下。

"谭飞,我跟你说个事。去年冬天,有一次我在实验室窗口看到一个人。女生,背着双肩包,站在实验楼门口往上看。看了大概十分钟,然后走了。我当时觉得奇怪——大冬天,谁站楼下往上看。后来开学了,我在建模组名单上看到了林瑶。我看到名字的时候没对上人。上周组会结束,她最后一个出实验楼——我在操场上看到的。然后我想起来了。"

他把球放回球架。

"就是她。"

"她在看什么。"

"你说呢。"

他走到球场边,弯腰提鞋——这个动作表示他准备走了。直起身来的时候,他看了我一眼。

"谭飞。老周让你带组的时候你没问为什么。我跟你说了你才问为什么。你现在知道为什么了。你打算干什么?"

我没回答。

他等着。等了大概五秒。然后点了点头——和平时一样,话不多,只在应该说话的时候说,问完了就等你回答。你不回答他也不追问。他转身往操场方向走了。

"周三不打球了。"我冲着操场方向说。

"你比赛什么时候?"

"大概一月。"

"比完再说。不差这几周。"他头也不回。

我看着他的背影越来越小。路灯把他的影子越拉越长,直到融进操场边的黑暗里。

然后我一个人站在球场上。手里没球。面前没篮。冷风从月鹿山的方向吹过来,穿过落光了叶子的树,穿过空荡荡的球场,从我领口灌进去。那个花体 L 在胸口的位置,被风吹得微微发凉。

她说:"我叫林瑶,统计方向大三。"

她从来没说过她认识我。

第7章 "你真的知道吗"

周四的组会在下午两点。

和往常一样。选题讨论、进度汇报、小王又画了一张自己觉得很好看但其实很没用的图、小陈头也不抬地翻笔记、赵一鸣把代码跑通了——林瑶让他写的数据预处理模块,他花了三天,最后发现是索引写错了。

"索引从零开始。"林瑶说。

"我知道。我就是忘了。"

"那你下次记得。"

"好的学姐!"

气氛是正常的。和过去三个月里的每一次组会一样——轻松、高效,偶尔有拌嘴。林瑶今天穿了一件深蓝色的卫衣,袖子稍微长了一点,盖住了手背。每次她打字的时候会把手从袖子里伸出来一点,敲完键又缩回去。手腕上的黄色皮筋在蓝色袖口上露出一圈。

我站在讲台旁边。手里没有粉笔。今天不用黑板。

组会到三点半结束。小王第一个站起来收拾东西——"我要去抢球场!赵一鸣你来不来,我们今天三打三"——"来"——两个人一前一后出了教室。小陈收好了笔记本和电脑,站起来的时候看了我一眼。然后看了林瑶一眼。然后走出去了。

门关上。

教室里只剩两个人。投影仪的风扇还在嗡嗡地转。

林瑶在收电脑。她今天用的不是外接键盘——不知道是没带还是懒得带。她把充电器拔下来,把线在手上绕了两圈,塞进双肩包侧面的口袋里。动作不快,但很流畅。一看就是每天都做的事。矿泉水瓶还剩半瓶,她拧紧瓶盖放进包里。

"林瑶。"

她自己拉上拉链——在讲台旁边。"嗯?"

"我有事问你。"

我的手插在口袋里。她看了我一眼。那个眼神很短,但我注意到她听到了什么——我说话的声音比平时低了,尾音有点发紧。她在等我的下一句。

但我的下一句没有出来。

不是我不想说。是我准备了无数遍的开场白——从昨晚到今天下午——全部失效了。在脑子里它们都是完整的句子。到了嘴边,每一个字的重量都变了。

"你想问什么?"

是她先说的。

她手扶着讲台边缘,身体微微往旁边靠了一点。没有坐回椅子上。她选择站着。和我面对面。

教室里安静了几秒钟。走廊里有脚步声路过——不知道是谁,越来越近,又越来越远,最后消失在楼梯口。

"你认识我。"

我的声音比我想象的更轻。

"从一开始就认识我。"

她没说话。也没低头。视线没有闪躲。

常沙十二月的天是灰白色的,窗外的光没有颜色。她站在讲台和窗户之间,光线打在她侧脸上,能看清她眼睫毛投下的影子。

"对。"

她说这个字的时候,语气和她在组会上说"残差检验通过了"是一样的。平静的,不犹豫的,像是在陈述一个别人早就应该知道的事实。

"我认识你。"

"你在游戏里叫——"

"摇铃。"

她替我说了那个名字。比我早了半秒。好像她觉得"摇铃"这个名字不应该让我来说——应该她来说。

这是我第四个月知道这件事。但在她说出那两个字的时候,四年像是被压缩成了一个瞬间。所有东西都在那两个字里面。Steam 语音里的电流声。麦克风炸麦的笑声。"没事姐姐带你"。"发你了"。"我不"。灰色的头像。三年的灰色。走廊里那句话——"你现在还玩 Galgame 吗?"

"你为什么不告诉我?"我说。

"你也没问我。"

她的声音没有责备。没有委屈。是一种——像是在转述一个你我都心知肚明的事实。

"我在组会上问过你。"

"你问的是'你是不是玩过瓦'。我说现在应该讨论建模。"

"那不一样——"

"对。不一样。"她看着我的眼睛,"你问的是我有没有玩过瓦。我回答了。但你真正想问的是'你是不是摇铃'。你没有说出来。如果你说出来了,我会认的。"

她停顿了一下。手里的笔不转了。

"但你从头到尾都没有把那个名字说出来。到现在也没有。"

我想反驳。但我想了一下——我确实没有。在走廊里,在组会上,在那个深夜看着灰色头像的时候。我从来没有把"摇铃"这两个字放在她面前。我只是在心里确认,在脑海里播放。我把这个秘密保存了整整三个月,以为自己在小心翼翼地保护什么。但我保护的——只是我自己。

"你在等我先说。"我说。

"对。"

"为什么。"

她把手里的笔放在讲台上。金属笔杆碰到木质桌面,发出一声轻响。

"谭飞。"她没有叫学长。"四年前是你先消失的。这次轮到你来找我了。"

我看着她的眼睛。她不是生气的态度。她说话的样子像是在跟一个迟到的队友复盘:这里是 B 点,我刚才封了烟,你应该往右走。事实是什么就说是什么,不需要加一句"你为什么不往右走"。她知道你为什么不往右走——因为你不知道。

她什么都知道。


"张嚣告诉你的?"她问。

"嗯。"

"他什么时候说的。"

"昨天。"

"哦。"她点了点头,像是一切都在预料之中。"他去年冬天在实验楼门口发现我了。我当时觉得——反正被看到了,早晚也会被你知道。只是没想到他忍了这么久。"

"你应该自己告诉我。"

"我告诉过你了。第一天。走廊里。'你现在还玩 Galgame 吗'——那是我能说的最接近的话。剩下的我不能替你说。"

窗外起了风。树枝打在窗框上,发出干燥的响声。

"你怎么找到我的。"我说。

她看着窗外。常沙冬天的天是灰的,云层很厚,看不见蓝色。

"你当年在 Steam 语音里说过你的学校。湘南师大。还说过你那个导师——那时候你还不是他的研究生,你说你本科毕设老师姓周。有一次你说你在图书馆四楼坐着,楼下在修路,很吵——那是学校北边的路,只有数学院旁边的图书馆北边在修路。"

她把这些说完,转过来看着我。

"你把你的生活一点一点地告诉我了。你自己可能没发现。你说学校的银杏树在秋天很好看,说你们系实验楼的电梯永远在修,说你有一件穿了两年半的蓝色卫衣。你没说你是什么学校、什么专业、哪个导师。你的意思是——这些都是无关紧要的细节。但对我来说,它们不是。"

"你查了这些东西。"

"对。"

"查了多久。"

"从你消失以后。"

她坐到了讲台旁边的椅子上。翘起一条腿,双手放在膝盖上。那个动作很自然——她不是在等我来审问她。她在等她自己把故事讲完。

"你不上瓦以后,我还在打。一个人打,有时候和别人组。但我发现自己越来越不想说话了。语音开着,但我基本不出声。后来我把瓦也删了。然后我想——这个人去哪了。"

"你在 Steam 上也不回消息了。"

"因为我上线的时候你已经不在了。"她低下头,指尖在讲台上慢慢画了一个圈。"不是不在线。我看到你在线——你有时候在玩别的游戏。但我发的消息你从来不回。我猜你大概是觉得尴尬——"

"不是因为尴尬——"

"那是什么。"

我张了张嘴,没说出来。

不是因为尴尬。是因为她推荐给我的东西太对了。对到我看到她的时候会想到"她知道我需要什么,在我知道之前就知道了"。那种感觉不是说"谢谢你推荐了好游戏",是"你看见了我身上一个我自己都看不到的空洞,然后你什么都没说,只是给我指了条路"。这件事让我不舒服。不是她让我不舒服——是我自己。我不喜欢被人看见。尤其是被一个在网上认识的人。尤其是一个声音好听的女孩子。

但这些话我没有说出来。她现在坐在我对面,看着我,等我的回答。而我什么都没说。

"反正。"她笑了一下,"你消失以后,我想了想。我一个学统计的,高中数学只有一百零五分。大二那年被概率论折磨得半死——你跟我说'题目没问题,你也没问题,是你俩暂时不太熟'。我当时觉得——这个人说话还挺好听的。"

"你记得这句话。"

"很多句都记得。"

她说得很轻,像在说一件不太重要的事。但她的指尖还在讲台上画那个圈。

"你消失以后,我开始查。湘南师大、数学系、姓谭。你们学院有保研公示名单——我找到了。谭飞。数学系,保研统计学方向。我把那一页截了图。"

她停了一下。手指不再画圈了。

"我想——这个人还在。他还在那所学校。他在读研。他学的是统计方向——就是我正在被折磨的那个专业。"

"你是因为我才选统计的?"

"不是。"她摇头,"我本来就学统计。但你是因为我才选——不对。是我因为你才选——"她停了一下,重新组织句子。"我因为你才选的建模。不然我这种高考数学一百零五的人,为什么要去碰数学建模。"

教室里忽然很安静。

饮水机没在加热。投影仪的风扇刚才忽然停了。连窗外的风都停了。

"你准备了多久。"

"两年。"

"从什么时候开始——"

"大三上学期。看到保研名单之后。我想考你们学校的研究生——不是一定要考,就是想试试看。然后我发现你们学校没我们专业的研究生点。考不了。那就——参加建模竞赛吧。换了另一种方式。"

"你怎么不说——"

"说什么?说谭飞你好,我是摇铃,我考不进来你们学校但我可以报名你们学校的建模培训,你到时候来带我行不行?"

她说这段话的时候语速快了一点。不是生气——像是在复述一个自己在脑子里过了很多遍的念头,已经不太在意了。说完她把笔拿起来,又放下。

"我考过来是我自己的事。我不是来找你负责任的。"她抬起眼睛看着我,"我就是想看一看。看看谭飞到底是个什么样的人。你打游戏的时候胆子那么小——枪法又烂——但你后来学会了。你在语音里说话的时候,很少说自己的事。但我偶尔能听出来——你状态不好的时候,你说'还行'。只有你说'还行'的时候,才是不行。你喊人妈妈的时候,我觉得你好笑。好笑到我这辈子没听过那么好笑的事。但我笑完以后在想——这个人平时是不是一个人待太久了。"

她说完了。

没有总结,没有"所以呢"。说完了就是说完了。

我站在那里。手还插在口袋里。指尖是僵的。

"你为什么要这么做。"

"因为我放不下。"

她弯起嘴角。往一边歪。和第一次组会上挑破我紧张时一模一样的弧度。但这次——我不知道怎么形容。不是自嘲。也不是无所谓。是一种练习了很多年的、已经把这件事说到不痛了的语气。

"你看,我就是这么放不下。好笑吧。"

我没有笑。

她说那句话的时候——我应该笑。或者我应该摇头,说不是,不好笑,一点也不。但我什么反应也做不出来。我的胸腔里有什么东西在往下坠。不是感动——是沉重。很沉的、像一块石头压在胸口上的那种感觉。

有人花了两年走向我。查了我的学校、专业、导师,找到了保研公示名单,截图存下来。她高考数学只考了一百零五分——她自己在语音里说的——然后她选了数学建模。她一个人站在实验楼底下,冬天,往里看。十分钟。

而我呢?

我连她一条消息都没发过。

三年前我最后一次在 Steam 上看到她的聊天框。我打了字,又删了。打了字,又删了。最后关掉了。然后继续打 Galgame。

她等了多久?一个月?两个月?半年?她等到头像变灰。她等我发一条消息——"最近在干嘛"——四个字,发出去只需要按下回车。我没有。

"你不欠我什么。"

她的声音把我拉回来。她看着我,表情很平静。像是从我的沉默里看到了我刚才在想的东西。

"我考过来是我自己的事。我参加建模组是我自己的事。我不是来找你负责的。你当年没有义务回我的消息——你不欠我什么。"

"林瑶——"

"你听我说完。我放不下不是你造成的。是我自己要放不下。你推荐——不对,是我推荐你玩 Galgame——不对。"她按了一下眉心。"我把顺序说反了。反正——我从头到尾都是自己在做选择。查你、考过来、报建模组、点名找你。这些都是我自己选的。你没有要求我做任何事。"

她把笔从讲台上拿起来,放进卫衣口袋里。

"我就是想看一看——看看谭飞到底是个什么样的人。"

"那你看到了吗?"

她站起来。拿起双肩包,背上。

"看到了。"

站在门口,侧过身。一只手搭在门框上。她没有碰到门——门刚才被小陈关上之后一直是关着的。

"还在看。"

她推开门,走了。

脚步声在走廊里从近到远,从清晰到模糊。从四楼到三楼。从三楼到二楼。从二楼到一楼。

她走了以后,我坐在了讲台旁边的椅子上。是她刚才坐过的那把。椅子的金属腿还没完全冷却。

她说的所有话里,有的我记得很清楚——每一个字。有的已经模糊了——我太用力地去想了,反而抓不住。但我记得她的表情。从头到尾。没有哭、没有生气、没有委屈。只是在说一件她早就想好了要怎么跟你说的事。

唯一那一句"好笑吧"——那一下笑。那不是笑。

那是她把这件事在胃里放了两年。放熟了。拿出来给你看的时候,已经不烫了。

我坐在空教室里,对着黑板上的粉笔印迹——上次讲 ARIMA 模型留下来的残图,斜斜地挂在那儿。窗外开始下雨了。冬天没有大雨,是那种细细密密的、飘在空中的雨,打在窗户上几乎没有声音。

我想——

她花了两年。

我呢。

我做了什么。

我把她发我的那串游戏清单打开。第一款。第三款。第五款。我把她的推荐全都玩了一遍。我把铃音线通了七八遍——每次都打出一模一样的结局。我在一个环形的跑道上跑步。她在那条跑道的起点站了两年。然后走了进去。然后跑到了我面前。

然后她说"还在看"。

而我在想什么?我在想——我配吗。

我以前觉得"我不配"是一个结论。是我在认真审视自己之后得出的合理判断。现在我发现它不是一个结论。它是一条捷径。它让我不用去争取任何东西——因为"我不配",所以不去试。不去试,就不会失败。不会失败,就不会证明——证明那句话是真的。

但我从来没问过她怎么想的。我只看到了"我不配"。没看到她在等我。连这个事实,都是她替我说出来的。

窗外的雨还在下。讲台上她的那支笔还在——她忘记带走了。我拿起来。是一支很普通的黑色中性笔,笔帽上有一点磨损的痕迹。她在想问题的时候会用这个东西敲下巴。我在组会上看到过无数次。

我把笔放进口袋里。然后站起来,关灯,关门。

走廊里没有她的脚步声了。

我走回实验室。工位上,显示器右下角的便签纸上——老周写的那张"建模培训计划"——上面的小铃铛还在。铅笔画的。线条很细。旁边有一个小小的音符符号。

我不知道她什么时候画的。可能是第一次组会之前。可能是某次她在等我而我在徘徊的时候。她走进空无一人的教室,在便签纸上画了一只铃铛。然后等我到了以后,对着我说:"学长你是不是有点紧张?"

——

那晚回到宿舍,我躺在床上。

没有打开游戏。没有打开手机。没有睡着。

我想起第一次在瓦里听到她的声音。她说"捷风你枪法好烂"。她说"没事姐姐带你"。她说"你看,我就说姐姐能带你"——那局真的赢了。我想起她在语音里笑到炸麦——"你喊人妈妈"——她笑成那样,还要帮我把那局赢了。"你喊人妈妈也得把人家的分赢回来吧。"我想起她发的那串游戏名。她一个一个手打出来的——"夕暮れの鈴"——那时候她把这个名字打上去的时候,在想什么呢?她只是觉得这个游戏适合我。适合一个在深夜里不知道自己缺什么的男生。

然后我想起她说"他保研公示名单我截图存下来了"。她说这句话的时候没有哭。她嘴角往一边歪,说她看到了,说她想——这个人还在。

我想起那句话。不是她说的。是我自己说的——在心里。她花了两年走向我。我呢?

我把手伸向手机。打开 Steam。摇铃的灰色头像。我打开聊天框。

打了一行字。

删掉。

又打了一行。

全删了。

光标在闪。它在笑我:你来这里干什么?你刚才在教室里一个字都没回应。她替你说了所有话。你做了什么?你说了一句"你为什么要这么做"。她说了二年。你说了一句"你为什么要这么做"。

我把手机扣过去。屏幕的亮光从枕头下面渗出来,把天花板照亮了一小块。

那一小块光里,那道缝还在。从墙角往中间延伸了二十厘米。

五年了,我从来没修过那道缝。