下一章 上一章 目录 设置
22、第二十二章 铁窗-编号INMAT-0712 沈陌恢复意 ...
-
沈陌恢复意识的时候,闻到了铁锈和消毒水的味道。
他的第一个动作不是睁眼,而是感受身体的状态——这是他经历过两次副本之后形成的本能反应。身体的姿势是躺着的,背下是一层薄薄的、硬邦邦的垫子,像医院病床但更窄。双臂放在身体两侧,手腕上没有束缚,但脚踝上有——金属的、冰凉的、贴合皮肤但不至于勒紧的环形物。
空气是冷的。不是空调的那种冷,是那种从混凝土墙壁里渗出来的、带着潮气的、经年累月的冷。湿度很高,呼吸的时候能感觉到肺泡表面凝结了一层薄薄的水雾。
沈陌睁开眼睛。
天花板是灰色的混凝土,表面粗糙,有渗水的痕迹。一盏日光灯嵌在天花板里,外面罩着一层厚厚的有机玻璃——不,是防弹玻璃。灯管发出惨白的、嗡嗡作响的光,频率有点问题,每隔几秒会微微闪烁一下。
他坐起来。
这是一个大约六平米的单人牢房。三面是混凝土墙,一面是铁栅栏门。门对面墙的高处有一扇很小的窗户——大概三十厘米宽、二十厘米高,嵌在将近半米厚的墙体里。窗户上没有玻璃,只有铁栏杆。透过栏杆,他能看到一片灰蒙蒙的天空——不是副本里那种均匀的灰色,是阴天的、有云层厚薄变化的、真实的灰色。
牢房里只有一张床——他躺着的这张——一个不锈钢马桶,一个洗脸池。没有桌子,没有椅子,没有书架。墙角有一个小小的监控摄像头,红色指示灯在一闪一闪地亮着。
沈陌低头看了看自己。他穿着一套橘色的连体服,胸口的位置印着一串白色的字:INMAT-0712。
他的笔记本不在口袋里。笔也不在。手机不在。背包不在。所有他从现实世界带来的物品都被清除了。
但沈陌并不慌张。他已经学会了——每个副本都会剥夺你的一切,然后让你在废墟中重建一切。物品可以被拿走,但大脑里的东西拿不走。
他闭上眼睛,开始整理已知信息。
环境:单人牢房,高安全级别(防弹灯罩、深嵌式窗户、金属脚镣)。监狱的可能性大于拘留所——拘留所不会用这种级别的设施。
身份:INMAT-0712。这个编号的格式是字母+数字,INMAT很可能是INMATE(囚犯)的缩写。0712——第七号牢房第十二号囚犯?还是第712号囚犯?考虑到监狱的规模,712更合理。
身体状态:脚镣存在但手腕自由。这说明监狱的安全等级不是最高——最高等级的囚犯会被全身束缚。他属于“中等风险”类别。
副本已经开始。但游戏的声音还没有出现——和之前两次一样,游戏会在他完全清醒并开始主动探索之后才宣布规则。这是一种设计——给玩家短暂的“迷茫期”,让他们在没有规则的情况下先感受环境,增加恐惧感。
沈陌睁开眼睛,站起来。
脚镣的重量比预期的轻。链子大约有三十厘米长,允许他正常行走但不能奔跑。他走到铁栅栏门前,透过栅栏的缝隙往外看。
门外是一条走廊。走廊很宽,大约三米,地面是水泥的,刷着一层灰色的环氧树脂漆。走廊两侧都是同样的铁栅栏门,每扇门之间相隔大约四米。他能看到对面有三扇门,左边能看到两扇,右边——被墙壁挡住了。
走廊的尽头是一扇厚重的铁门,关闭着。铁门上有一个小窗,但从小窗的位置和大小判断,应该是从外面控制的。
走廊里没有其他人。灯光的嗡嗡声是唯一的声音。
沈陌回到床边,坐下。他开始用手指在床垫上写字——不是无意义的涂鸦,是在脑海中构建这个副本的数学模型。
监狱是一个图。节点是牢房、走廊、门、楼梯、出口。边是它们之间的连接关系。他目前只有一个节点——他的牢房。他需要更多的节点来构建完整的图。
但构建图需要移动。移动需要离开牢房。离开牢房需要门打开。
门什么时候打开?
沈陌抬起头,看着天花板上的监控摄像头。红色指示灯在闪烁。有人在看。这个监狱是有管理者的——不管是真人还是副本的NPC——有人在通过摄像头监控他。
如果有人在监控,那么“规则”就不是完全由游戏声音宣布的。有一部分规则体现在监狱的管理制度中——作息时间、放风时间、用餐时间、工作安排。这些“制度”就是这个副本的隐性规则。
沈陌需要做的第一件事,是搞清楚这个监狱的日常运作流程。就像在幽灵巴士中他需要先搞清楚站点的规律一样。
他耐心地等着。
大约过了二十分钟——他用自己的脉搏估算的,静息状态下每分钟大约七十二次,二十分钟大约一千四百四十次心跳——走廊里传来了声音。
脚步声。很多人的脚步声。沉重、缓慢、带着锁链拖地的金属声。
然后是铁门打开的声音——走廊尽头那扇厚重的铁门,发出了一声低沉的、机械的嘎吱声。
脚步声越来越近。沈陌透过栅栏门往外看。
一群穿着和他一样橘色连体服的男人从铁门那边走了进来。他们排成一列,双手放在身后——不,是铐在身后。每个人的手腕上都有手铐,脚上有和他一样的脚镣。他们走得很慢,因为脚镣限制了步幅。
队伍的最前面是一个穿着深蓝色制服的男人——狱警。他的腰带上挂着一根警棍、一串钥匙、一个对讲机。他的脸——和幽灵巴士的司机一样——是模糊的。沈陌试图聚焦在他的五官上,但视线会在某个阈值上滑开。
NPC。和司机一样的NPC。这个副本的管理者是游戏的一部分,不是玩家。
狱警带着队伍走过走廊,在每一扇牢门前停下来,打开门,把一个囚犯推进去,然后关上门。沈陌数了一下——从他门前经过的有六个人。加上他自己,这一层至少关着七个人。
最后一名囚犯被推进了他对面的牢房。铁门关闭的声音在走廊里回荡了三次。
然后狱警走了。脚步声消失在铁门后面。铁门关闭——又是一声低沉的嘎吱声。
走廊重新陷入了寂静。
但这一次,寂静不是完全的。沈陌能听到从其他牢房里传来的声音——有人在咳嗽,有人在低声自言自语,有人在用指甲刮墙壁。还有一个声音——很轻的、有节奏的敲击声。像是有人在用指节敲铁栅栏。
嗒,嗒嗒,嗒嗒嗒。嗒,嗒嗒,嗒嗒嗒。
沈陌听了一会儿。这不是随机的敲击——这是有规律的。一种重复的模式,每四个音节一组,重音在第一个和第三个上。
摩尔斯电码?沈陌不太熟悉摩尔斯电码,但他知道基本的节奏——点、划、间隔。这个节奏太均匀了,不像是摩尔斯——摩尔斯电码的点划长度比例是1:3,而这个敲击的每个音节长度几乎相等。
更像是一种简单的编码。每四个音节一组,每组由“嗒”和“嗒嗒”组成,共有十六种可能的组合。十六种——一个十六进制编码系统。
沈陌想起了母亲的笔记本。16×16的0-1矩阵。十六种组合。
这个副本的核心结构是16×16的矩阵。
他走到铁栅栏门前,把耳朵贴在冰冷的铁条上,仔细听那个敲击声。
嗒,嗒嗒,嗒嗒嗒。嗒,嗒,嗒嗒,嗒嗒嗒。
第一组:嗒(1),嗒嗒(2),嗒嗒嗒(3)——1,2,3。
第二组:嗒(1),嗒(1),嗒嗒(2),嗒嗒嗒(3)——1,1,2,3。
这不是数字——这是一个坐标。第一组(1,2,3)和第二组(1,1,2,3)的格式不一致。也许每组不是四个音节,而是三组不同的节奏?
沈陌闭上眼睛,把听到的节奏转换成数字。用“嗒”代表1,“嗒嗒”代表2,“嗒嗒嗒”代表3,“嗒嗒嗒嗒”代表4,以此类推。
第一轮:1,2,3,1,1,2,3。
第二轮:1,2,1,2,3,1,2,3,1。
第三轮:1,1,2,3,2,1,3。
不是固定的长度。每轮的长度不同。这意味着编码的单位不是“组”,而是“轮”——每一轮是一个完整的消息。每轮以某种方式分隔——也许是两次敲击之间的较长停顿。
沈陌等了大约十分钟,收集了三轮完整的信号。
他回到床上,用手指在床垫上写下转换后的数字序列:
轮1: 1,2,3,1,1,2,3
轮2: 1,2,1,2,3,1,2,3,1
轮3: 1,1,2,3,2,1,3
这些数字有什么意义?如果每个数字对应一个字母——A=1,B=2,C=3——那么轮1就是A,B,C,A,A,B,C。没有意义的单词。
如果这些数字是矩阵中的索引呢?16×16的矩阵,行和列都从1到16。两个数字一组可以构成一个坐标。轮1有七个数字,不是偶数——最后一个数字3是单独的。
也许三个数字一组?(1,2,3)和(1,1,2)和(3)——最后一组不完整。
沈陌把数字重新分组,尝试不同的可能性。
轮1的七个数字,如果按(1,2,3)、(1,1,2)、(3)——最后一组只有一个数字,不成立。
如果按(1,2)、(3,1)、(1,2)、(3)——最后一组只有一个数字,不成立。
如果按(1)、(2,3)、(1,1)、(2,3)——第一组只有一个数字,但也许第一组是起始标记?
沈陌在脑海中搜索数学结构。16×16的0-1矩阵——如果这个矩阵是一个邻接矩阵,那么它描述了一个有16个节点的图。每个节点用1到16的数字编号。两个数字一组可以表示一条边——连接节点i和节点j的边。
如果敲击声是在传递图的结构——边的列表——那么每组两个数字就是一条边。轮1的七个数字可以组成三条边加一个多余的数字——也许那个多余的数字是结束标记。
轮1: 1-2, 3-1, 1-2, 3——1-2重复了,3是结束标记。
轮2: 1-2, 1-2, 3-1, 2-3, 1——五个边?(1,2),(1,2),(3,1),(2,3),(1)——最后一个1可能是下一个轮的开始?
轮3: 1-1, 2-3, 2-1, 3——三个边加结束标记。
沈陌需要更多的数据。他需要知道这个图的结构——它的节点数、边数、连通性、对称性。如果这个图就是副本的核心结构——就像幽灵巴士的十三点环一样——那么理解了图,就理解了副本。
他走到栅栏门前,用指节轻轻敲了三下——三声均匀的、中等音量的敲击。这是一个通用的“我收到了”的信号,在任何一个有编码交流的系统中都适用。
敲击声停了。走廊陷入了沉默。
然后,一个新的敲击声开始了。这次不是从同一个方向传来的——是从他左边的牢房传来的,距离更近。
沈陌把耳朵贴在门上。
新的序列:1,1,2,2,3,3,1,2,3,1,2,3。
十二个数字。正好可以组成六条边。
沈陌快速记录:
(1,1), (2,2), (3,3), (1,2), (3,1), (2,3)——结束。
六条边,其中三条是自环——节点连接到自身的边(1,1)、(2,2)、(3,3)。自环在图论中通常表示某种“自我参照”或“固定点”。
这个图只有三个节点?不对——如果有三个节点,最大的编号是3,那么边只能涉及1、2、3。但轮1中出现了数字?轮1最大的数字也是3。
三轮信号中出现的最大数字都是3。这意味着这个图只有三个节点。
但母亲的笔记本上记录的是16×16的矩阵——16个节点,不是3个。
沈陌皱了一下眉头。也许他解码错了。也许“嗒”不是1,而是其他数字。也许节奏的单位不是单次敲击,而是敲击之间的间隔。
他重新听了听走廊里的声音。除了敲击声,还有别的——远处的水管声、风声、自己的呼吸声。在敲击声停止的间隙,他能听到一种非常微弱的、持续的低频嗡嗡声。像是某种大型机器在运转——也许是通风系统,也许是发电机。
沈陌闭上眼睛,让自己沉浸在声音的环境中。他把注意力从敲击声上移开,去听那个低频嗡嗡声。
嗡嗡声的频率大约在50赫兹左右——交流电的频率。如果这个监狱有交流电,那么电力系统应该是正常的。但50赫兹的嗡嗡声在混凝土建筑中会被放大,因为混凝土对低频声波的反射率很高。
然后他听到了另一个声音。
从非常非常远的地方传来的——也许是地下,也许是建筑的另一端——一种有节奏的、沉闷的撞击声。砰,砰,砰。每一下之间的间隔大约两秒。
这不是机器。这是有人在用重物砸什么东西。
沈陌睁开眼睛。
这个监狱不是静止的。有人在行动。有人在试图破坏什么东西。那些敲击声——那个用十六进制编码传递信息的玩家——不是唯一在行动的人。
他需要离开这间牢房。
他重新审视了铁栅栏门。锁是电子锁——没有钥匙孔,只有一个感应面板。需要门禁卡或生物识别才能打开。脚镣也是电子锁——脚踝处的金属环上有一个小小的感应区,和门锁的感应面板一样。
电子锁需要电力。如果他能切断电源,锁可能会失效——或者触发备用电源,锁会变得更牢固。这是一场赌博。
但他没有切断电源的手段。牢房里没有任何金属工具——马桶是陶瓷的,洗脸池是陶瓷的,床是混凝土浇筑的固定结构。连一根铁丝都没有。
沈陌坐在床上,开始思考另一个角度。
如果这是一个监狱副本,那么“逃离监狱”应该是目标。但副本不会给你一条直接的逃离路径——你需要自己创造。而创造逃离路径的第一步,是理解这个监狱的结构。
他的牢房在三楼——他能从窗户看到天空的位置来判断。窗户嵌在将近半米厚的墙体里,说明外墙非常厚——可能是老式建筑,或者是为了防止囚犯凿墙逃跑特意加厚的。窗户的铁栏杆是焊接的,焊点很牢固,徒手不可能掰开。
但窗户的尺寸——三十厘米宽、二十厘米高——一个成年男性不可能通过。除非他瘦到脱相,而沈陌虽然瘦,但他的肩宽超过四十厘米。
窗户不是出口。门是唯一的出口。门需要电子锁。电子锁需要电力。电力——
沈陌抬起头,看着天花板上的日光灯。灯管在亮着。如果整栋监狱的电力系统是统一的,那么断电会影响所有区域——包括监控、门禁、报警系统。如果他能让整栋监狱断电,门就会打开。
但怎么断电?总电闸在哪里?在地下室?在行政楼?他连牢房都出不去。
沈陌深吸了一口气。他需要换一个思路。不是“如何断电”,而是“监狱的电力系统有什么漏洞”。
他回想自己看过的关于监狱的纪录片和资料——不是为了副本做的准备,而是平时无意中看到的。监狱的电力系统通常有多个冗余:主电源、备用发电机、UPS不间断电源。切断一个来源,另一个会自动启动。要彻底断电,需要同时切断所有电源——或者制造一个超过系统承载能力的负载,让保护装置跳闸。
制造过载需要大量的电力消耗——把所有的电器同时打开,让电流超过断路器的额定值。但他只有一个日光灯和一个监控摄像头。日光灯的功率大约40瓦,摄像头的功率更小——加起来不到100瓦。而一个标准的断路器额定电流是16安培,在220伏的电压下可以承载3520瓦的功率。100瓦远不足以触发跳闸。
这条路也走不通。
沈陌靠在墙上,闭上眼睛。
他感觉到混凝土墙壁的冰冷透过连体服传到背上。粗糙的、不均匀的表面——浇筑的时候模板没有压实,留下了气泡留下的凹坑。
他的手在墙壁上无意识地摩挲着。
然后他感觉到了一件事。
墙壁不是完全光滑的。在他后背接触的位置,有一个非常微小的、几乎不可察觉的凸起。不是气泡造成的——气泡的凸起是圆形的、平滑的。这个凸起是方形的,有棱角。
沈陌坐直了身体,转身面对墙壁。
在床头上方大约十厘米的位置,在日光灯照不到的阴影里,混凝土墙壁上嵌着一个小小的东西。大约两厘米见方,和墙壁的颜色几乎完全一样——如果不是用手摸,根本不可能发现。
沈陌用指甲抠了抠那个东西的边缘。它松动了一下。他又抠了几下,把它从墙壁里挖了出来。
是一个金属片。非常薄的、像是从某个设备上拆下来的金属标签。正面刻着一串数字:0712。
他的囚犯编号。
沈陌把金属片翻过来。背面也有字,但太小了,在昏暗的灯光下看不清。他把金属片举到日光灯正下方,眯着眼睛看。
背面上刻着两行字:
“当钟声敲响十三下的时候,门会打开。但你要在钟声结束之前走出去。否则,你会被永远锁在里面。”
沈陌的手指微微收紧。
这不是一个普通的金属片——这是一个提示。游戏给出的提示。和幽灵巴士中倒计时显示屏上的信息一样,副本会在某个时刻给玩家一个隐晦的指引。
“当钟声敲响十三下的时候”——监狱里有钟吗?他在牢房里没有看到任何钟。也许是监狱的广播系统播放的钟声?也许是某个特定的时间——下午一点?凌晨一点?十三点在二十四小时制里是下午一点。
“门会打开”——哪扇门?他的牢房门?走廊尽头的铁门?监狱的大门?还是所有的门?
“你要在钟声结束之前走出去”——钟声结束之前。十三下钟声,每下之间有几秒的间隔。如果间隔是五秒,那么从第一下到第十三下结束大约有六十秒。一分钟的时间。他需要在一分钟内从牢房走到某个出口。
“否则,你会被永远锁在里面”——永久性的失败。和幽灵巴士中“不会回来”一样,这不是隐喻,是字面意思。
沈陌把金属片攥在手心里。
他现在有了一条线索。但他需要更多的信息——钟声什么时候来?门打开之后往哪里走?监狱的出口在哪里?路上会遇到什么障碍?
他需要和其他玩家交流。那些敲击声——那不是一个玩家,至少是两个。一个人不可能同时从两个不同的方向发出敲击声。这一层至少有三位玩家:他自己、左边牢房的敲击者、对面牢房传来的另一个敲击者。
沈陌走到栅栏门前,用指节敲了三下——和之前一样的“我收到了”信号。
然后他敲了一个新的序列:1,1,1。三声连续的敲击,表示“我有信息”。
沉默。
然后左边的牢房传来回复:嗒,嗒嗒。1,2。意思是“收到,请说”。
沈陌深吸了一口气。他不知道该怎么用这种简单的数字编码传递复杂的信息——“钟声十三下,一分钟,需要地图”。他需要先建立一套词汇表。但建立词汇表需要时间和双方的配合,而时间可能不多了。
他改用最简单的方式:敲击数字。13,然后1,然后60。
嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒——13下。
嗒——1下。
嗒嗒嗒嗒嗒嗒——6下,然后嗒——0下?不对,60需要两个数字:6和0。但0怎么表示?没有0的敲击方式——敲0下就是没敲,无法传递。
沈陌想了一下。用10代表0?10是嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒——太长了,容易数错。
他决定用另一种方式:敲60下。六下十组?不,六十下太多了,间隔容易混淆。
左边牢房的敲击者似乎理解了他的困境。一个新的敲击序列传来:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16。
十六个数字。十六进制——用1到16代表所有数字,10就是10,不是0。在这个系统中,0不存在——或者用16代表0?
沈陌快速建立了映射:1到9不变,10代表0?但十六进制中10是A,不是0。也许这个编码系统本身就是十六进制的——每个“数字”实际上是1到16之间的一个数,对应十六进制的一个位。那么60在十六进制中是3C——3和12。3用嗒嗒嗒表示,12用嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒表示。
他敲了3,然后12。
左边牢房回复了:嗒(1)。表示“明白”。
然后左边牢房开始敲一个新的序列。非常长,非常复杂,沈陌需要全神贯注地听。
序列被分成了组,每组之间有明显的停顿。第一组:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16。十六个数字——这是十六进制的数字表。他在告诉沈陌:我们使用十六进制,每个数字1-16对应一个十六进制位。
第二组:1,1,1——开始标记。
第三组:2,5——25?
第四组:1,9——19?
第五组:3,8——38?
第六组:1,6——16?
第七组:1,1,1——结束标记。
沈陌把数字记录下来:25,19,38,16。如果这些是十六进制数,转换成十进制:25(十六进制)=37十进制,19=25,38=56,16=22。37,25,56,22——没有明显意义。
如果这些是坐标——16×16的矩阵中的坐标——那么(2,5)、(1,9)、(3,8)、(1,6)是四个点。四个点在16×16的网格中。
沈陌在脑海中画了一个16×16的网格,标出这四个点:(2,5)、(1,9)、(3,8)、(1,6)。这些点有什么规律?(1,6)和(1,9)在同一列,(2,5)和(3,8)在对角线附近。
他需要更多的点。
左边牢房继续敲击。新的序列:开始标记——2,1——1,3——3,5——2,2——1,1——3,3——结束标记。
新的坐标:(2,1)、(1,3)、(3,5)、(2,2)、(1,1)、(3,3)。
沈陌把所有坐标列出来:
(2,5), (1,9), (3,8), (1,6)
(2,1), (1,3), (3,5), (2,2), (1,1), (3,3)
把这些点画在脑海中——他注意到一件事。这些点的行号只有1、2、3,列号从1到9。所有点的行号都不超过3。这意味着这个图只有三行?但列号有九列——3×9的网格?不是16×16。
然后沈陌注意到了另一个规律。把坐标按行号分组:
行1: (1,9), (1,6), (1,3), (1,1)
行2: (2,5), (2,2), (2,1)
行3: (3,8), (3,5), (3,3)
把这些列号按顺序排列:
行1: 1,3,6,9
行2: 1,2,5
行3: 3,5,8
这不是随机分布。这是一个模式——行1的列号是1、3、6、9——差值2、3、3。行2的列号是1、2、5——差值1、3。行3的列号是3、5、8——差值2、3。
这些差值——2,3,3,1,3,2,3。没有明显规律。但沈陌注意到另一个东西——如果把每个坐标看成一个向量,这些向量的和是多少?
(2+1+3+1+2+1+1+3+2+3) = 行号总和?不对。行号总和是(2+1+3+1+2+1+1+3+2+3)=19?他数错了。
沈陌重新计算了所有十个坐标的行号:2,1,3,1,2,1,1,3,2,3。总和=19。列号总和:5,9,8,6,1,3,5,2,1,3=43。没有明显意义。
也许这些坐标不是网格中的点——而是矩阵中的非零元素的位置。16×16的矩阵,如果只有这些位置是1,其他都是0,那么这个矩阵非常稀疏。但十个非零元素对于一个16×16的矩阵来说太少了——稀疏度只有3.9%。而且所有非零元素都集中在前三行——这意味着这个矩阵是高度退化的,秩最多是3。
沈陌想起了母亲的笔记本中16×16矩阵旁边的符号——一个很小的圆中点。如果圆中点的大小对应数字,那么很小的圆中点可能对应一个很小的数字——也许是0?1?2?
他需要更多的信息。左边牢房的敲击者似乎还有更多内容要传递。
下一组序列来了:开始标记——4,1——4,2——4,3——4,4——4,5——结束标记。
(4,1),(4,2),(4,3),(4,4),(4,5)。五个点,都在第四行,列1到5。
然后是第五行:(5,1),(5,2),(5,3),(5,4),(5,5)。
第六行:(6,1),(6,2),(6,3),(6,4),(6,5)。
第七行:(7,1),(7,2),(7,3),(7,4),(7,5)。
第八行:(8,1),(8,2),(8,3),(8,4),(8,5)。
每一行都是连续的列1到5,从第四行一直到第八行。
然后第九行:(9,1),(9,3),(9,5),(9,7),(9,9)——间隔一个。
第十行:(10,2),(10,4),(10,6),(10,8),(10,10)——偶数。
第十一行:(11,1),(11,4),(11,7),(11,10),(11,13)——间隔3。
第十二行:(12,2),(12,5),(12,8),(12,11),(12,14)——间隔3,从2开始。
第十三行:(13,3),(13,6),(13,9),(13,12),(13,15)——间隔3,从3开始。
第十四行:(14,4),(14,8),(14,12),(14,16)——四个点,间隔4。
第十五行:(15,5),(15,10),(15,15)——三个点,间隔5。
第十六行:(16,6),(16,12)——两个点,间隔6。
最后是结束标记。
沈陌坐在床上,手指在床垫上快速地写着。他得到了一个完整的16×16的0-1矩阵的坐标——所有非零元素的位置。
这个矩阵有结构。前三行只有零星的点——行1有四个点(1,1)(1,3)(1,6)(1,9),行2有三个点(2,1)(2,2)(2,5),行3有三个点(3,3)(3,5)(3,8)。从第四行到第八行,每行都有前五列连续的五个点。从第九行到第十三行,每行有五个点,但间隔逐渐增大——第九行间隔2,第十行间隔2但偏移,第十一、十二、十三行间隔3。第十四行有四个点间隔4,第十五行有三个点间隔5,第十六行有两个点间隔6。
这个矩阵是对称的吗?检查一下——(1,1)存在,对称的(1,1)当然存在。(1,3)存在,对称的(3,1)存在吗?行3列1——行3的点是(3,3)(3,5)(3,8),没有(3,1)。不对称。
这是一个下三角矩阵?所有非零元素的行号都小于等于列号?检查——(2,1)行2列1,行号大于列号,所以不是下三角。也不是上三角。
沈陌在脑海中把这个矩阵画出来。他用0代表空,1代表有,画了一个16×16的网格。
行1: 1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0
行2: 1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0
行3: 0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0
行4: 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0
行5: 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0
行6: 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0
行7: 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0
行8: 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0
行9: 1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0
行10: 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0
行11: 1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
行12: 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0
行13: 0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0
行14: 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1
行15: 0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0
行16: 0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0
沈陌盯着这个矩阵看了很久。
他认识这个结构。
这是一个分块矩阵——或者说,是一个由多个子矩阵拼接而成的矩阵。前三行构成一个稀疏的“头部”,行4-8构成一个5×5的全1方阵重复五次?不对,行4-8只有前五列是1,后面的列全是0——这是一个5×5的全1方阵,但只出现在前五列。行9-16构成一个下三角形状的、逐渐稀疏的结构——从第九行的五个1(间隔2),到第十六行的两个1(间隔6)。
这个矩阵的整体形状像一个三角形加上一个矩形。前三行是“顶点”,行4-8是“腰部”,行9-16是“尾部”。
沈陌突然意识到了这个矩阵是什么。
这是一个邻接矩阵。但不是普通的图的邻接矩阵——它是一个距离矩阵?还是一个关联矩阵?还是——
他看了看行4-8的5×5全1方块。如果这是一个邻接矩阵,那么节点4、5、6、7、8之间是全连接的——每对节点之间都有边。这是一个5-团(5-clique),一个完全图K5。
前三行的稀疏连接——节点1连接1、3、6、9;节点2连接1、2、5;节点3连接3、5、8。这些连接把“头部”的节点和“腰部”的节点连接起来。
行9-16的三角形结构——从第九行开始,节点9连接1、3、5、7、9——奇数列;节点10连接2、4、6、8、10——偶数列;节点11连接1、4、7、10、13——间隔3;等等。这些连接形成了一个分形结构——每个节点连接到比它小的节点,但连接的间隔逐渐增大。
沈陌的手指在床垫上画出了这个图的结构。这不是一个随机图——这是一个递归定义的分形图。每一层的节点按照某种规则连接到前一层的节点。
他需要给这个图命名。也许叫它“监狱图”——因为这个副本是一个监狱,而这个图可能描绘了监狱的结构。节点代表牢房、走廊、楼梯、出口——边代表它们之间的连接。16个节点对应16个位置。
如果这个图是监狱的地图,那么节点1到16分别代表什么?他需要知道每个节点对应的物理位置。而唯一能告诉他这些信息的人,是左边牢房的敲击者——那个正在用十六进制编码传递矩阵的人。
沈陌走到栅栏门前,敲了三下——我收到了。
然后他敲了一个新的序列:1,2,3——他需要问一个问题。但他不知道怎么用数字编码问“这个矩阵是不是监狱的地图”。
他决定用最简单的方式:敲出节点1到16,然后敲一个问号。问号怎么表示?他用16代表问号——因为十六进制中16是F,F听起来像“问”?不太合理。但他没有更好的选择。
他敲了1到16,然后敲了16。
左边牢房沉默了很长时间。
然后回复来了:1,1,1——开始标记。然后一个很长的序列。
沈陌集中注意力,一个一个地数。
1,2——12?
3,4——34?
5,6——56?
7,8——78?
9,10——910?
11,12——1112?
13,14——1314?
15,16——1516?
然后结束标记。
这些数字太大了,不可能是1-16之间的数字。也许这些是两位数——12,34,56,78,910,1112,1314,1516。但910是三位数,1112是四位数——不合理。
也许这些是坐标——(1,2)、(3,4)、(5,6)等等——八组坐标,每组两个数字。如果把这些坐标画在16×16的网格上,它们会落在对角线上——(1,2)、(3,4)、(5,6)、(7,8)、(9,10)、(11,12)、(13,14)、(15,16)。这些点都在对角线上方一格。
这意味着什么?
沈陌想了想。也许这不是坐标——这是配对。节点1和节点2配对,节点3和4配对,节点5和6配对……一共八对。十六个节点被分成了八对。
配对。匹配。在幽灵巴士中,十三点环状结构对应的是循环差集——一种组合设计。在这个副本中,16×16的矩阵加上这个配对信息,可能对应的是——
沈陌的脑海中突然闪过一个词:完美匹配。
在图论中,一个完美匹配是一个边的集合,覆盖了所有的节点,且每个节点恰好出现在一条边上。这个十六个节点的图如果存在完美匹配,那么它至少有一个——可能有很多个。左边牢房传来的配对(1,2)、(3,4)……就是其中一个完美匹配。
但为什么给他这个匹配?
沈陌闭上眼睛,在脑海中重新审视那个16×16的邻接矩阵。如果这个矩阵描述的图有完美匹配,那么矩阵的某些行和列的组合应该满足一定的条件。他检查了(1,2)这个配对——节点1和2之间有一条边吗?矩阵中(1,2)的位置是0——节点1的第二列是0,所以没有直接连接。(1,2)不是图的一条边。
所以这个配对不是图本身的边——它可能是某种“对应关系”。也许是牢房和牢房之间的对应?也许是囚犯和囚犯之间的配对?
沈陌想起了副本的名字——“铁窗”。铁窗意味着监狱,但“铁窗”这个词在中文里也有“囚禁”的隐喻。而在更深的层面上,“铁窗”可能指的是——
窗。窗户。铁栏杆的窗户。他在牢房里有一扇窗户——很小,嵌在厚墙里,有铁栏杆。透过窗户,他能看到天空。
天空是自由的象征。而铁窗是囚禁的象征。囚禁与自由——一对相反的概念。就像图论中的对偶性——一个图和它的对偶图。
这个16×16的矩阵可能不是原始的图——而是对偶图。原始图是监狱的物理结构——走廊、门、楼梯、出口。对偶图是“关系”的结构——囚犯之间的关系、规则之间的关系、或者——自由与囚禁之间的关系。
而那个配对——(1,2)、(3,4)……——可能是从对偶图回到原始图的“解码密钥”。
沈陌睁开眼睛。他需要验证这个假设。但他没有足够的信息——他需要知道监狱的物理结构。他需要离开这间牢房。
他看了看窗户。天色比之前暗了一些——黄昏了。在这个副本里,时间的流逝是真实的——有白天和黑夜的交替。这意味着副本的持续时间可能很长——几天,甚至几周。
钟声什么时候来?他需要知道监狱的作息时间——什么时候放风,什么时候吃饭,什么时候点名。这些时间点可能就是“钟声”的伪装。
沈陌走到栅栏门前,用指节敲了三下——我收到了,谢谢。
左边牢房回复了:嗒嗒(2)。不客气。
然后敲击声停止了。走廊恢复了寂静,只有日光灯的嗡嗡声和水管的咕噜声。
沈陌躺回床上,把金属片攥在手心里。0712。他的编号。这个金属片是“钥匙”吗?也许在钟声响起的时候,这个金属片可以打开什么。
他闭上眼睛,开始在脑海中构建这个副本的完整模型。
监狱。16个节点。16×16的邻接矩阵。完美匹配。钟声十三下。一分钟的窗口。编号0712。金属片。
所有的碎片都在那里。但他还看不到全貌。他需要更多的碎片——更多的观察、更多的信息、更多的与其他玩家的交流。
而这个副本才刚刚开始。
沈陌在黑暗中睁着眼睛,听着自己的呼吸声。远处那个有节奏的撞击声还在继续——砰,砰,砰。每一下之间的间隔还是两秒。
有人在地下室的某个地方,用重物砸着什么。也许是墙,也许是门,也许是锁。那个人也在试图逃跑。
而这个监狱里——这个副本里——每一个囚犯都在试图逃跑。因为囚禁的本质就是被剥夺了自由,而自由是每一个被囚禁的人最深处的渴望。
沈陌想起了镜中剧场里皮夹克男人说的那句话:“我害怕。但我还在这里。我没有逃跑。这就够了。”
但在这个副本里,逃跑不是选项——是目标。不逃跑的人,会被永远锁在里面。
他需要逃跑。他需要自由。
不是为了自己——虽然也是为了自己——而是因为自由是悬赏游戏中最稀缺的东西。每完成一个副本,你就离真正的自由更近一步。每获得一个数字,你就多了一分摆脱这个游戏的可能。
自由。这是第三个副本的底色。
沈陌闭上眼睛,在入睡之前的最后一个念头是:钟声什么时候来?
他不知道。但他知道一件事——当钟声响起的时候,他必须准备好。
他攥紧了手里的金属片,让它嵌入掌心,用疼痛提醒自己——这不是梦。这是真实的。囚禁是真实的。自由是真实的。而他会逃出去。
就像他在幽灵巴士中找到了生路,在镜中剧场中找到了真实的自己——在这个铁窗之下,他会找到通往自由的那扇门。