傍晚六点五十分,林澈提前十分钟到了图书馆三楼。
这个时间的自习室人还不多,日光灯刚刚亮起,在深色木桌上投下清冷的光。空气里有旧书、灰尘和隐约咖啡的味道。他选了靠窗的位置——那是前世他习惯坐的地方,抬头就能看到窗外暮色渐沉的天际线。
他从书包里拿出《高等数学》和草稿本,想了想,又拿出《C语言程序设计》。程序员的习惯让他在规划时间时总是下意识地留出冗余:如果给苏雨薇讲题只用半小时,剩下的时间可以预习下周的编程课。
然而翻开《C语言》第一章,他就愣住了。
那些曾经让他熬夜苦读的语法——指针、内存管理、数据结构——现在读起来就像小学算术一样简单。不是记忆的简单,而是理解的透彻。他能看到代码背后的逻辑骨架,能看到算法在计算机底层流动的轨迹。
这种感觉很奇异。就像突然听懂了所有乐器的交响,看到了数学公式在现实世界投射的阴影。
他翻到书后的习题,随手在草稿纸上写下一段代码:
```c
#include
#include
// 实现一个简易的哈希表
typedef struct Node {
int key;
int value;
struct Node* next;
} Node;
typedef struct HashTable {
int size;
Node** table;
} HashTable;
HashTable* createHashTable(int size) {
HashTable* ht = (HashTable*)malloc(sizeof(HashTable));
ht->size = size;
ht->table = (Node**)malloc(sizeof(Node*) * size);
for(int i = 0; i table[i] = NULL;
}
return ht;
}
int hash(int key, int size) {
return key % size;
}
void insert(HashTable* ht, int key, int value) {
int index = hash(key, ht->size);
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->key = key;
newNode->value = value;
newNode->next = ht->table[index];
ht->table[index] = newNode;
}
int find(HashTable* ht, int key) {
int index = hash(key, ht->size);
Node* current = ht->table[index];
while(current != NULL) {
if(current->key == key) {
return current->value;
}
current = current->next;
}
return -1; // 未找到
}
void freeHashTable(HashTable* ht) {
for(int i = 0; i size; i++) {
Node* current = ht->table[i];
while(current != NULL) {
Node* temp = current;
current = current->next;
free(temp);
}
}
free(ht->table);
free(ht);
}
```
写完最后一个分号,林澈看着满页的代码,手微微发抖。
这已经不是“大一学生”的水平了。这是工作三年、写过几十万行代码、重构过复杂系统的工程师才有的肌肉记忆。
笔迹流畅,变量命名规范,内存管理严谨,连注释都是他习惯的格式——用英文,简洁,关键处解释算法思路而不是重复代码。
他撕下这一页,揉成团,塞进书包深处。太危险了。如果被别人看到,解释不清。
“林澈?”
苏雨薇的声音从身后传来。他转头,看到她站在两排书架之间,背着浅蓝色的双肩包,头发扎成马尾,有几缕碎发落在颈边。
“你来得真早。”她走过来,在对面坐下。
“习惯了。”林澈合上《C语言》,“吃过饭了吗?”
“吃了食堂的盖浇饭。”她从包里拿出笔记本和试卷,“我把今天那道题的步骤抄下来了,但还是不懂怎么想到要构造那个函数。”
林澈接过她的笔记本。字迹清秀工整,每个步骤都写得清清楚楚,但在关键步骤旁边打了个问号。
“这里,”他用笔尖指着她笔记上的第三步,“你卡在怎么消去$f(1)$,对吧?”
苏雨薇点头,身体微微前倾。
林澈开始讲解。他刻意放慢语速,用她能理解的方式解释:为什么要构造辅助函数,罗尔定理的使用条件,如何巧妙地把未知的$f(1)$设计成可以消去的参数。
讲着讲着,他忽然意识到,自己不只是在前世记忆的层面理解这道题,而是在一个更高的维度上看到了数学的结构美。他能同时想到三种解法,能预见苏雨薇可能困惑的每一个点,能在她皱眉的瞬间调整讲解的角度。
这感觉……像开了上帝视角。
“我懂了!”苏雨薇忽然说,眼睛亮起来,“你是说,我们构造的$\varphi(x)$实际上是把原问题转化成了一个更简单的问题——找罗尔定理的适用条件!”
“对。”林澈有些惊讶于她的领悟速度。前世,苏雨薇的数学并不算顶尖,但显然她很聪明,只是缺乏引导。
“你真厉害。”她轻声说,脸微微红了,“赵老师说得没错。”
林澈心头一紧:“赵老师说什么了?”
“下午你走后,张涛他们议论,说你可能是作弊了。”苏雨薇的声音低下来,“但赵老师说,这种题没有标准答案可抄,能解出来就是真本事。”
林澈沉默。赵建国这是在保护他。
“还有,”苏雨薇犹豫了一下,“赵老师让我转告你,数学建模小组的选拔改时间了,改到这周三晚上七点,地点在理学院301。”
“周三?”林澈算了下时间,就是后天。
“嗯。他说让你务必参加,但……”她顿了顿,“但别表现得太突出。”
这句话意味深长。赵建国在提醒他藏拙。
“我知道了,谢谢。”
窗外天色完全暗了下来,图书馆的灯光在玻璃上反射出模糊的倒影。自习室的人渐渐多了起来,有情侣低声说话,有考研党在翻厚厚的参考书,键盘敲击声和翻书声混合成一种令人安心的白噪音。
“你以后想做什么?”苏雨薇忽然问。
这个问题让林澈愣住了。前世,他的答案很俗套:进大厂,拿高薪,在大城市买房。但现在的他,知道七年后的自己会猝死在工位上。
“不知道。”他诚实地说,“可能……做点有意义的事。”
“有意义的事?”
“比如,用技术解决实际问题。”林澈说,脑中闪过比特币、人工智能、还有那些他曾经想做但没机会做的项目,“而不是只写业务代码。”
苏雨薇看着他,眼神里有某种欣赏:“你和其他人不一样。”
“哪里不一样?”
“他们想的是找工作、考研、出国。”她说,“但你想的是……改变什么。”
林澈苦笑。如果她知道自己是死过一次的人,大概就不会这么想了。
“你呢?”他反问。
“我想做教育。”苏雨薇说,声音很轻但坚定,“我高中时数学很差,差点没考上大学。后来遇到一个好老师,他告诉我,数学不是天才的专利,只是需要正确的方法。所以我想,以后我也要当老师,帮助那些觉得自己学不好数学的学生。”
林澈看着她。在柔和的灯光下,她的侧脸轮廓清晰,眼神清澈。前世,他只知道她是班花,是富家女,是很多人暗恋的对象。但现在,他看到了更深层的东西——理想,善意,还有坚韧。
“你会是个好老师。”他说。
苏雨薇笑了,那笑容很温暖。
接下来的半小时,他们又讨论了几道题。林澈发现,苏雨薇的思维其实很敏捷,只是缺乏自信。一旦理解了基本原理,她就能举一反三。
八点整,苏雨薇的手机震动。她看了一眼,脸色微变。
“我得走了。”她匆忙收拾书包,“家里有点事。”
“我送你到校门口?”
“不用,我自己可以。”她站起来,犹豫了一下,“林澈,谢谢你今晚给我讲题。”
“应该的。”
她离开后,林澈重新翻开《C语言》。但这一次,他看不进去了。脑中反复回响赵建国的话:别表现得太突出。
为什么?
是因为怀疑他作弊?还是因为察觉到了什么异常?
他想起下午办公室里的对话。赵建国问他解题思路是谁教的,他说自学。教授没追问,但那个眼神——锐利,审视,像要看透他。
也许他该收敛一些。至少在公开场合,表现得像一个“稍微聪明点的普通学生”,而不是怪物。
但另一个声音在脑中响起:他只有这一世的时间。如果不尽快积累资源,建立人脉,布局未来,等下一世又要从头开始。
矛盾。
九点钟,林澈收拾书包离开图书馆。夜晚的校园很安静,路灯在石板路上投下暖黄的光晕。他走到宿舍楼下的自动售货机,买了瓶冰水。
拧开瓶盖时,手机震动。
不是短信,不是微信,是一个陌生的电话号码发来的彩信。
林澈皱眉。这个年代,已经很少有人用彩信了。他点开。
第一张图片:他下午在教室考试的侧脸照片。角度隐蔽,像是从后排偷拍的。
第二张图片:他比特币交易账户的登录页面截图。用户名打了马赛克,但余额显示清晰:0.028 BTC,当前价值约1900美元。
第三张图片:一行手写字的照片,笔迹潦草:
**“我知道你是谁。”**
**“停止展示异常。”**
**“周三不要参加建模选拔。”**
**“否则后果自负。”**
林澈的手瞬间冰凉。
他环顾四周。夜色中的校园平静如常,有晚归的情侣牵手走过,有外卖电动车呼啸而过,宿舍楼的窗口亮着温暖的灯光。
但暗处有眼睛在盯着他。
他快速走到路灯照不到的树影下,背靠树干,再次点开彩信。仔细看第一张照片——是从教室右后方拍的,那个位置坐着谁?下午考试时,他坐在第三排靠窗,右后方……
是张涛。那个总是考第一的学霸,今天还对他冷嘲热讽。
不,不对。张涛可能偷拍他,但不可能知道比特币账户。那是他用加密网络登录的,除非……
“先知”。
林澈脑中闪过这个名字。那个黑客论坛的神秘网友,能获取他的验证码,知道他是“一类人”。
他立刻登录论坛。私信列表里,“先知”的头像是灰色的,最后一条消息还停留在昨晚的“别怕,我们是一类人”。
林澈打字:“是你吗?”
没有回复。
他又发:“你想干什么?”
还是没有回复。
林澈关掉论坛,心脏狂跳。这不是恶作剧。对方掌握了他的行踪、他的秘密、甚至他刚刚收到但还没公开的邀请。
“停止展示异常”——这意味着,对方在监视他的一举一动,知道他今天在考场的表现引起了注意。
“周三不要参加建模选拔”——对方知道赵建国给他的邀请,知道时间和地点。
这已经不是普通黑客能做到的了。
林澈深吸一口气,强迫自己冷静。前世二十五年的程序员生涯,七年重生者的经历,在这一刻凝聚成一种冰冷的分析能力。
他列出已知信息:
1. 对方知道他是重生者(或至少是异常者)——“我知道你是谁”
2. 对方有监视能力——拍照片
3. 对方有黑客能力——获取比特币账户信息
4. 对方了解他的近期计划——知道建模选拔
5. 对方在警告,不是直接攻击——说明暂时不想为敌,或有所顾忌
那么,应对策略:
A. 完全听从警告:停止展示能力,放弃建模选拔,回归普通学生。
B. 部分妥协:减少公开表现,但仍参加选拔。
C. 无视警告:继续原计划。
D. 反向调查:找出对方身份。
林澈思考着每个选项的后果。
A选项最安全,但意味着他要放弃这世的优势积累。下一次轮回不知道什么时候开始,他不能浪费时间。
B选项是折中,但可能激怒对方。
C选项风险最大,可能立刻招致报复。
D选项……他需要帮手。
林澈想起“先知”。如果发彩信的不是“先知”,那可能还有第三方势力。如果就是“先知”,那为什么要用这种威胁的方式?昨晚还说“我们是一类人”。
除非,“一类人”不是指朋友,而是指同类——既是同类,也可能是竞争者。
林澈想起前世看过的一些科幻设定:重生者不止一个,彼此可能是竞争关系。资源有限,机会有限,所以互相制约。
如果是这样,那警告就不是威胁,而是规则宣示:别太出风头,别引起注意,别破坏平衡。
他靠在树干上,抬头看夜空。城市的光污染让星星变得稀疏,只有最亮的几颗顽强地闪烁。
重生第七天,他以为自己在玩单机游戏,却发现这是个多人竞技场。
手机又震了一下。这次是短信,来自另一个陌生号码:
**“彩信收到了吗?别回复,听我说。”**
**“我是来帮你的。有人在监控所有异常者,你今天的表现已经触发了警报。”**
**“数学教授赵建国是观察者之一。他给你的邀请是测试。”**
**“周三不要去。重复,不要去。”**
**“如果你想活到下一世,就保持低调。”**
**“明天这个时间,我会再联系你。销毁这条消息。”**
林澈盯着屏幕,手指收紧。
观察者。测试。下一世。
这些词串联起来,指向一个他不敢深想的可能性:重生不是意外,而是某种系统的一部分。有管理者,有规则,有监控。
而他已经踩线了。
他按下删除键,短信消失。然后清空彩信,清空通话记录,关机,取出SIM卡。
做完这一切,他靠在树干上,闭眼深呼吸。
重生带来的兴奋感在这一刻彻底冷却,取而代之的是冰冷的危机感。他不是在玩简单的重生爽文游戏,而是在某个未知规则的棋盘上,当一枚刚刚被发现的棋子。
怎么办?
听从警告,放弃所有计划,当一个普通学生?那他重生的意义是什么?
反抗,继续前进,面对未知的监控和威胁?
或者……找到那个发送短信的人,问清楚真相?
林澈睁开眼睛,目光逐渐坚定。
他选择第三条路。
他要参加周三的建模选拔,但要换一种方式——不展示真正的实力,而是展示“符合大一学生身份的潜力”。他要接触赵建国,试探教授是否是“观察者”。他要调查那个发短信的人,找出监控系统的真相。
最重要的是,他要加快布局。
比特币要继续买,但要更隐蔽。团队要开始组建,但要从小规模开始。能力要继续提升,但要私下进行。
他重新装回SIM卡,开机。屏幕亮起时,他打开备忘录,新建一个加密文档:
**《异常应对计划》**
1. 表面行为:回归普通学生节奏,成绩保持中上即可。
2. 暗中准备:建立匿名网络身份,加密所有通讯。
3. 资源积累:通过场外交易购买比特币,分散账户。
4. 盟友寻找:试探陈明、沈墨等人是否可靠。
5. 对手调查:监控张涛动向,调查“先知”真实身份。
6. 规则探索:谨慎接触赵建国,收集“观察者”信息。
写完,他设置密码:母亲生日+今天日期。
然后他走向宿舍楼。每一步都踏得很稳,像在宣告某种决心。
回到宿舍时,陈明正在打游戏,看到他进来,头也不回:“澈哥,约会回来了?”
“图书馆自习。”林澈说。
“跟苏雨薇一起?”陈明终于转过头,挤眉弄眼,“可以啊,班花都拿下了。”
“只是讲题。”
“我懂我懂。”陈明转回去继续打游戏,“对了,你听说了吗?数学建模小组提前选拔了,周三晚上。张涛那小子在群里炫耀,说他稳进。”
林澈心里一动:“张涛怎么知道选拔提前了?”
“他说赵教授单独通知他的。”陈明撇撇嘴,“装什么装,不就是数学好点嘛。”
单独通知。
林澈想起苏雨薇的话:赵建国让她转告自己。但张涛也是单独通知的。
这意味着,赵建国在同时测试他们两个人?或者更多人?
他爬上床铺,拉上帘子。在手机微弱的光线下,他再次打开比特币交易平台。
当前价格:6850美元。他账户里的0.028BTC,价值191.8美元。
太少了。
他需要更多资金,更多资源,更多底牌。
林澈点开场外交易板块,找到一个信誉良好的卖家。用新注册的匿名账号,发了条消息:
“我想买0.5BTC,现金交易,地点你定。”
发送。
他知道这很冒险。场外交易可能遇到骗子,现金交易可能被抢劫。但这是他目前能想到的最隐蔽的方式——不经过银行,不留下身份记录。
几分钟后,对方回复:
“可以。明天下午三点,大学城星巴克二楼,靠窗第三个桌子。带现金,一万人民币。我只等十分钟。”
林澈计算:0.5BTC按6850美元算,大约3425美元,折合人民币两万三。对方要价一万,明显偏低,要么是急需用钱,要么是赃款急于出手。
但他没得选。
“成交。”
发送完这条消息,林澈关掉手机。
黑暗中,他听着陈明的游戏音效和键盘敲击声,听着隔壁宿舍传来的吉他声,听着远处街道隐约的车流声。
这是18岁的世界,简单,嘈杂,充满青春的气息。
但他知道,在这层表象之下,有暗流在涌动。有眼睛在观察,有规则在运行,有他不知道的真相等待揭晓。
而他,林澈,一个死过100次(或许更多)的人,决定这一次,要看清棋盘的全貌。
即使这意味着,要走进黑暗。(记住本站网址,Www.WX52.info,方便下次阅读,或且百度输入“ xs52 ”,就能进入本站)