窗外的雨声成了永恒的背景音,不再是烦人的干扰,而是他思考时的白噪音。
屏幕上,不再是复杂的企业数据模型,而是一个他刚刚构建的简易3D模拟界面。
他根据记忆,精准地重建了17楼的走廊模型——1701(他自己的)、1702(陈薇的)、电梯间、消防通道门,甚至包括了门口那块地毯的精确尺寸和初始位置。
他调取了物业提供的公寓楼标准层建筑图纸,确保了模型结构的准确性。
然后,他开始输入变量。
变量一: 那块地毯。
初始状态:平整。
当前状态:逆时针偏移约4.7度(他目测的估值)。
触发条件:一个垂首于门方向、力度适中的力。
变量二: 门内测漆面上的模糊痕迹。
位置:门锁下方10.2厘米。
形态:非规则圆形,边缘有细微的拖拽感。
模拟材质:粗糙棉织物。
变量三: 地下车库监控的异常波动时间戳。
他的手指在键盘上飞舞,一行行代码如同具有生命的溪流,注入这个虚拟的走廊。
他不是在写一个故事,而是在构建一个物理引擎,设定好所有的参数和约束条件,然后让程序基于最基础的概率和物理法则,去计算、去推演、去还原那个夜晚可能发生的事件序列。
屏幕上,虚拟的走廊里空无一人,时间指示器跳转到昨晚的某个时刻。
第一次模拟运行。
他假设张哲情绪激动,用力拍门时不小心蹭歪了地毯。
程序运行结果:地毯偏移角度过大,且与门板上织物摩擦痕迹的位置无法关联。
概率评估:35%。
第二次模拟运行。
他假设清洁工用大型吸尘器工作时撞歪了地毯。
程序运行结果:清洁工作有固定时间,通常在下午。
与异常波动时间及陈薇失联时间窗口不符。
且吸尘器底部多为光滑塑料,难以产生特定的织物摩擦痕。
概率评估:15%。
第三次,第西次…… 他尝试了各种偶然性组合。
邻居醉酒绊倒、送快递的匆忙离开……每一次,程序都基于逻辑和物理规则给出了一个冷冰冰的概率数值,没有一个超过50%。
所有的“偶然”解释,都像是勉强拼凑起来的碎片,无法严丝合缝。
林默靠在椅背上,屏幕的光在他瞳孔里闪烁。
他意识到,也许需要引入一个更关键的变量——一个“主动行为者”。
他重新开始。
核心假设: 有一个未知个体(X)在异常时间点出现在1702门口,并进行了某个“动作”,这个动作同时导致了地毯偏移和门板擦痕。
他将地下车库监控异常波动的那个毫秒级时间戳,设为T0,假设这是X进入大楼的可能时间之一。
他将X的“动作”设定为多种可能:尝试撬锁、挟持陈薇出门、在门口与陈薇发生争执……程序高速运行着,虚拟的X在走廊里进行着各种尝试。
大部分模拟结果都被判定为不符合物理规则或逻辑。
首到他调整了X的“动作”模式。
他假设X的目的不是从外破门,而是从内离开。
并且,离开的状态并非正常行走。
时间指示器在T0之后的一段时间跳动。
虚拟的1702门从内部打开。
虚拟的X身影出现,但姿态异常——他/她似乎是半拖拽、半搀扶着另一个虚拟的、软绵绵的人形(A)。
在出门的瞬间,被拖拽者(A)的脚,或是X因为负重而失去平衡的脚,碰到了那块地毯的边缘。
由于是拖拽产生的斜向摩擦力,地毯被带动,产生了那个逆时针的小角度偏移。
同时,在调整搀扶姿势或者关门时,X的衣袖或肩膀上某种粗糙织物的部位,快速地、不经意地擦过了门内锁下方的区域,留下了那道极其轻微的痕迹。
程序运行。
物理引擎计算着力矩、摩擦力、碰撞体积。
屏幕上,虚拟的角色完成了这一系列动作。
结果弹出: 地毯偏移角度:估算值4.5度。
符合观测。
门板擦痕高度与形态:与输入参数吻合度87%。
整体序列逻辑自洽概率:78%。
林默凝视着这个结果。
78%。
在数据世界,这己经是一个足够触发严重警报、需要立即进行人工干预的概率值。
这个模拟画面,比任何言语都更有说服力。
它冰冷地指向一个令人不寒而栗的可能性——陈薇不是自己离开的,她是被一个从内部开门出来的人,以一种非自愿的状态带离的!
他立刻拿起手机,想再次联系陈昊。
但手指悬在拨号键上,他停住了。
他该如何陈述?
说我的电脑程序模拟出一个78%概率的绑架场景?
这在一个讲求实证的刑警听来,与疯子的臆想无异。
他需要更实在、更无可辩驳的东西。
他的目光投向屏幕一角,那个监控异常波动的提示框。
警方或许无法调动所有监控,但他可以尝试用别的方法。
林默关闭了模拟程序,打开了另一个复杂的软件界面。
这是他用来进行网络流量分析的工具,但现在,他打算用它来做一些更“灰色”的事情。
他的指尖在键盘上掠过,快得带起残影。
他不再试图模拟过去,而是要窥视过去。
他利用大楼网络某个未修补的漏洞,以及他自己编写的数据包嗅探与重组工具,开始尝试绕过低权限限制,访问公共监控系统的历史数据存储区。
这不是黑客行为,至少在他自己的定义里不是,这只是……采用非常规手段进行数据检索。
进度条在屏幕上缓慢地移动,每一个百分点的跳跃都伴随着心跳般的紧张。
窗外的天光渐渐泛白,雨势渐小,但天空依旧阴沉得像是要塌下来。
突然,软件界面弹出一个提示框——访问成功!
目标时间区间:T0 ± 10分钟。
数据流下载中……林默深吸一口气,迅速调取了对应时间段,地下车库入口及17楼走廊的几个监控探头画面。
大部分画面毫无异常,寂静的夜晚,空荡的角落。
首到——他点开了那个之前提示有异常波动的摄像头画面。
时间戳指向T0时刻。
画面正常播放了3秒,突然,屏幕变成了雪花点,持续了大约……2.7秒。
之后,画面恢复,一切如常。
就像是有一段数据被凭空吃掉了,或者被什么东西巧妙地覆盖了。
林默的心沉了下去。
这不是故障。
故障是随机的、无规律的。
而这种精确时间点的、短暂且规整的中断,更像是……他的鼠标猛地拖动进度条,在雪花点出现前的那一帧,按下暂停,然后逐帧后退。
悬念: 就在画面即将变成雪花点的最后一帧,在那监控探头的边缘,一个极其模糊的、穿着浅灰色连体工装的身影,推着一辆大型平板清洁车,正从镜头视野外走入,半个身子即将进入盲区。
那身影低垂着头,帽檐压得很低,完全看不清面容。
这个“清洁工”出现的时间,与监控中断的时间,以及他模拟推演中X行动的时间,高度重合。
林默感到一股寒意顺着脊椎爬升。
他迅速切换到17楼走廊的监控。
同样的时间段,同样的2.7秒,一片雪花。
有什么东西,或者说什么人,在昨晚那个雨夜,不仅物理上存在于这栋大楼里,还拥有能让电子监控“暂时失明”的能力。