当前位置:137中文网 > 都市言情 > 百次重生:我在轮回尽头永 > 图书馆的邀请与黑色的警告

图书馆的邀请与黑色的警告

<< 上一章 返回目录 下一章 >>
    傍晚六点五十分,林澈提前十分钟到了图书馆三楼。
    这个时间的自习室人还不多,日光灯刚刚亮起,在深色木桌上投下清冷的光。空气里有旧书、灰尘和隐约咖啡的味道。他选了靠窗的位置——那是前世他习惯坐的地方,抬头就能看到窗外暮色渐沉的天际线。
    他从书包里拿出《高等数学》和草稿本,想了想,又拿出《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-&gt;size = size;
    ht-&gt;table = (Node**)malloc(sizeof(Node*) * size);
    for(int i = 0; i table[ = 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-&gt;size);
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode-&gt;key = key;
    newNode-&gt;value = value;
    newNode-&gt;next = ht-&gt;table[index];
    ht-&gt;table[index] = newNode;
    }
    int find(HashTable* ht, int key) {
    int index = hash(key, ht-&gt;size);
    Node* current = ht-&gt;table[index];
    while(current != NULL) {
    if(current-&gt;key == key) {
    return current-&gt;value;
    }
    current = current-&gt;next;
    }
    return -1; // 未找到
    }
    void freeHashTable(HashTable* ht) {
    for(int i = 0; i size; i++) {
    Node* current = ht-&gt;table[;
    while(current != NULL) {
    Node* temp = current;
    current = current-&gt;next;
    free(temp);
    }
    }
    free(ht-&gt;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次(或许更多)的人,决定这一次,要看清棋盘的全貌。
    即使这意味着,要走进黑暗。
<< 上一章 返回目录 下一章 >>
添加书签