0%

1 前言

​ 快速排序算法是一类有效的排序算法,平均花费O(nlogn)的比较操作和O(1)的空间进行排序。但是快速排序算法存在花费O($n^2$)的较差情况出现,这种情况在之后会提到,这种情况即输入数组有序。经典快速排序算法出现这种较差情况的原因是输入数组的性质,而随机快速排序则解决了花费比较操作数依赖于输入的问题,使得较差情况的出现成为一个随机事件,这一随机事件发生的概率其实也非常低。随机快速排序期望操作数在O(nlogn)。

​ 本文包括快速排序,随即快速排序的简单介绍以及对随即快速排序性能的详细证明。

2 快速排序

​ 比如输入input=(5,3,7,6,2),进行快速排序。首先选定一个基准(pivot),一般使用第一个元素作为基准,pivot=5。

​ 快速排序设置两个“指针”,分别在最左端和最右端,这里指向5和2。开始时,从最右端的指针开始,判断右“指针”指向元素是否比pivot小,若小则停止,将右“指针”的值写入左“指针”的位置,然后切换至左“指针”;若大,则继续向左移动。与之对应,左“指针”向相反方向移动,判断左“指针”指向元素是否比pivot大,若大则将值写入右“指针”处。具体如下图所示(红色的5为pivot)。

​ 一轮操作之后,pivot=5将数组分割成左右两部分,左边均小于5,右边均大于5。之后分别对分割出的部分都进行上述操作,即先选择pivot,再分割。直到每一部分都仅有一个元素时,终止程序,返回序列。程序使用递归实现。

​ 容易看出,当数组input有序,需要O($n^2$)个比较操作。

3 随机快速排序

​ 随机快速排序算法核心在于pivot选择上的随机性。每次选择pivot的时候,均在该部分的所有元素当中均匀随机的选择,每个元素被选择成为pivot的概率相等。

​ 下面证明随机快速排序期望比较操作次数为$2nlnn+\Omicron(n)$。

​ 设输入$input=x=(x_1,x_2,…,x_n)$,令$y=(y_1,y_2,…,y_n)$是$x$的递增形式,即$y$就是$x$按递增排序之后的结果。定义随机变量$X$,对$\forall i<j$ ,若$y_i,y_j$在整个随即快速排序程序运行过程当中进行了比较,那么$X_{ij}=1$;否则$X_{ij}=0$。很容易看出$X_{ij}$服从伯努利分布,也就是0-1分布。

​ 让我们思考什么时候会产生比较,两个元素进行比较,当且仅当其中一个元素是基准pivot。那么很显然,两个元素仅可能进行至多一次比较。那么总的比较操作数可以写作如下形式。

​ 根据期望的运算法则,$E(X+Y)=E(X)+E(Y)$,还有伯努利分布的期望性质$E(X)=Pr(X=1)$可以得到,

​ 现在需要计算$y_i$和$y_j$有多大概率进行比较操作。设$Y_{ij}=\{ y_i,y_{i+1},…,y_{j-1},y_j \}$,这个集合显然是递增的,因为它是$y$截取的一部分。回顾快速排序,选择基准pivot之后,我们会将原有的区间一份为二,以pivot为界。$y_i$和$y_j$起始在同一个区间,这个区间就是$x$整体。一轮操作之后,$y_i$和$y_j$有三种可能,第一种是仍然在同一区间,第二种是所处两个不同的区间(被分割了),第三种是$y_i$和$y_j$其中一个元素在刚才成为了pivot,之后不会再对成为pivot的元素操作了。从另一个角度看,$y_i$和$y_j$要么进行比较,要么没有进行比较,第二情况对应了没有进行比较,第三种情况对应了进行比较,而第一种情况在这个角度来看没有意义。考虑,什么时候会出现第二种和第三种情况?显然,当这一轮操作选择$pivot\in\{y_{i+1},y_{i+2},…,y_{j-1}\}$时,会出现第二种情况;当$pivot=y_i或y_j$会出现第三种情况。

​ 根据上述分析,又因为是均匀随机采样,概率取决于数量,那么可以得到,

​ 如此,可以得到,

​ $\sum_{k=1}^{\infty}\frac{1}{k}$是调和级数。$\sum_{k=1}^{n}\frac{1}{k}$能够证明其范围在$ln(n+1)$和$lnn+1$之间,更具体的能够证明其极限收敛至$lnn+\gamma$,常数项为欧拉-马歇罗尼常数。具体证明可以自行搜索,这里仅用结论。

​ 于是得到了$E(X)=2nln+\Omicron(1)$,而$E(X)$之前提到即为程序期望的比较操作数。

​ 由于排序时间开销主要由比较操作决定,因此我们得到了随即快速排序算法的性能估计。

​ By BRB

​ 文章借鉴 Probability and Computing Randomized Algorithms and Probabilistic Analysis

这里的入学手续似乎没有那么麻烦,至少比现实社会容易得多。没有什么档案,录取通知书,团支部交接等等,只要你有邀请就可以来这里。所谓的邀请也只是少数有权人和有钱人,以及极少数幸运儿罢了。在这个世界,学校,并不是有实力就可以进入,其实这其中也充满矛盾。

学校,是让人变强的地方,而那些不够强的人是没办法进入学校的。两极的分化似乎不可挽回。

那些可能只有百分之零点一的幸运儿,一部分得到了部分有能力人的认可,一部分靠着错综复杂的关系网,才能得以入序。然而,这些幸运儿有着共同的烙印,那无奈的字母E。

显然,林励这时候成为了“幸运儿”。

尽管在曾经,林励至少也是个普通家庭的孩子,至少可以正正常常地生活下去。而现在,却要绞尽脑汁地“生存下去”。

可恶的等级制度,落后,恶心!林励无时无刻不在这么想,那个E067,为什么选中了自己?其实也有另一种可能,不是被选中了,而是恰好那个人是自己,没有任何光环,普普通通的中招!真的是人品跌到海沟去了!

“喂,以后在学校,你知道我办公室在哪,有不懂的事情可以来问我。不过,我不建议你过来问我,我很忙,你也有能力自己去搞清楚。反正,除了紧急事情,以后靠你自己了。”

D059打断了林励的颅内迭代,转身走了。

“谢谢您了!”

是因为我是E吗?确实E真的可能会带来很多麻烦,不惹麻烦上身确实是个选择。

D59心里也是有些矛盾,但是,交给他(林励)自己,应该是没错的,以前他都是这么办的。当然,那是以前的E069。

与之前见面的地方不同,从宿舍走进这里的操场,像是走进图书馆的感觉,大部分人诚惶诚恐,只有一小部分人还能迈着镇定高傲的步伐。在以前,林励最讨厌的几类人,就包括这种人,特立独行,傲慢至极,偏偏平时相处的时候装得平易近人,实际上话语间,举止间,无意的或者有意的透露着俯视者的恶心姿态。明明身高不高,却要低头看人,偏偏大多数人都没有意识到这类人的存在,被他们拙劣的演技迷惑。

但是,林励不会。

那些人的衣服上都没有序号,意味着至少是D级的人,偏偏还不好惹!林励血压似乎有点不太稳了。

偏偏灰白色的衣服将胸口上黑色序号对比得更加明显!有些棘手了,林励心想。

从林励身旁又走过一个有钱人打扮的学生,又是金色的袖口,黑色的靴子,白得发光一尘不染的衣服,只是这个人左手缠着一层突兀的绷带。林励没太在意。

但是,那个人却注意到了林励,E067。左手的绷带仿佛是区分他和其他有钱人学生的标志,他也很喜欢这个绷带,并不是有什么伤,只是会让手腕上的那串尖锐字符不那么显眼——D011。能隐约的看到,说明他也并不是想真正的隐藏自己,不然他为什么不彻底封死?这意味着他是D级,而且是金字塔尖的D。他很好奇,为什么学校里会有E级人,E?这是不那些……

他打断了自己的念头,越来越对林励感到好奇,以至于他都想放慢自己的脚步,不过这很困难,尤其是有一队D级人在走来,甚至其中还会有C级人的存在,他也不想一来学校就被孤立。

他,到底什么来头?

“你是那个人吧?”果然在一个没人的角落,那个人找到了还在冥思的林励。

“你是谁?”往往第一步是林励最为注意的。林励不想让别人知道自己如此关注别人的序号,尤其是别人有意隐藏的。

“我是D011。” D011看到林励几乎没有任何反应,反倒很是吃惊,“没关系的,我交朋友只看人,才不会管其它的。”

“我是E067,你好!”对方刻意的强调让林励原本的反感愈发强烈,这种先入为主的社交方式真的让人非常不爽。表面上平易近人,装作隐藏自己身份,反而有种更加隐蔽的傲慢与轻蔑。

但是实质上,也没那么坏。

“我一直认为,我们之间互相称呼序号是一件非常愚蠢的事情,不过这是这个世界的规则。我希望你称呼我为‘骏’,我喜欢这个字。”

D011放下之前的笑容,眼睛盯着远处说道。

看来每个世界总会有人特立独行,而这个世界特立独行的人却并不讨厌。林励也装得一脸深沉,“林励,叫我这个,以后你就是我兄弟。以后互相照应哈。”

“林励。”骏一板一眼地说道。

“骏,看来字如其人。”林励倒是痛快地很。

“这个是食堂。”

林励望着眼前这个规整地完美圆柱体笔直地矗立在平地之上,一共三层,每一层足足有平常楼房的三四层之高。侧面环绕木质的楼梯,简直是恐高一族的噩梦,像是一个金枪鱼罐头裹上几根橡皮筋。完美圆柱体的旁边是一个城堡,虽然不是想象中那么恢弘,但也属于少见的类型,整个城堡是白色的,雪白无瑕,甚至在白天不能够长时间注视。

“哦,那边那个是教学区,当然是室内教学区。操场这边才是我们经常待的地方啊。”

哦?难道这边教育改革已经到了体育课占半壁江山的地步了?真是离天下之大谱!

“正好饭点,走,我们吃饭去,这一顿我请你。”骏提了提手套。

“真是太感谢了!”林励也直接顺势答应,毕竟白嫖才是硬道理,只有深谙这个道理,才能步步为营!

“对了,我想问一下,我们在这里是学习什么?”林励注意到这个世界的一点偏差,似乎有什么不一样的地方。

“我们学习控制自己的‘天赋’。”

“天赋?”已经有一点奇怪,林励准备让骏自己说出来,“感觉好难啊。”

“确实很难啊,像我现在也只能用尽全力才能在墙上开一个小坑。”骏指了指自己左手的绷带,似乎在说这个是因为受伤才绑上去的。

“你好厉害!”

原来人手能在墙上开一个小坑吗?豆腐渣工程吗?这算作‘天赋’吗?那我有什么‘天赋’?

“我还以为你是为了遮蔽你的序号呢!”林励看着骏的左手。

“啊,有一部分原因吧。”显然并不是什么重要原因,林励有些失望,第一步就猜错了,还好不是那种奇奇怪怪的人,不然自己的尴尬症又犯了。

“你的‘天赋’是什么?”骏说出了一个林励此时最不希望听到的问题。

墙上打出一个坑?等等,如果这个墙不是所谓的豆腐渣工程,那么这是正常人可以做到的吗?我的天赋,等等,信上没说。那么,我有什么天赋呢?其实我感觉我的逻辑能力还可以,但是貌似在这个世界不太适用。林励大脑高速运转,但是外表要装得勉为其难来掩饰自己的思考。其实这个能力并没有那么难编,有点异于常人是不是就可以,你能在墙上打出坑,那我说我能……,不行,不能是身体上的能力,太容易被发现了,我又不可能有这种奇怪的能力。有了!

“我的‘天赋’是控制自己抛出硬币的正反面。”这种小把戏确实很容易,但是如果说是能力,应该也会有人相信吧?

但这即便是真的,也是令人可笑的能力。林励自己也在考虑,是不是说的太低了一点。

骏露出了令人疑惑地微笑,是太超出理解了还是太弱了?“你有能影响外物的能力吗?那是非常稀有的能力啊。如果你是操纵了硬币得到的变化,那么你一定能成长为‘C’级别的人啊!甚至‘B’也不是没有可能!不过,”

“不过什么?”

“如果你单单是通过影响自己来发生变化,可能未来最多也只是相当于那些无天赋的一般人而已,甚至如果在武力方面不如部分刻苦训练的倒霉蛋。”

​ “哦,是吗。”林励仔细想了一下,在传统的超能力世界,难道不是牵扯因果的能力最为强大吗?不过,这究竟是不是超自然世界也不好说,对于一个绝对的唯物主义者来说很难相信超自然力量,但是如果极其多的证据指向了超自然解释,也是会毅然决然相信的,这是林励此时的矛盾。

话说回来,这里的规则是,由自身直接展示出的‘天赋’小于影响其他事物的能力,那么意思是这里影响外物更加困难?那么为什么呢?这是个可以一直思考的问题。林励现在仿佛是海上乘着一块船板的落水者,本来在汪洋大海当中漂泊,不知道能去向何方还是溺亡,却看到远处一片黑影,下意识的朝着这片未知的黑影前进。

D011 想来也是这个世界的怪胎,出现了意味着这不是小概率事件,一定会有一群人,一群怪胎,对这个世界的序号产生反感。林励也很意外,自己为什么已经将这个“世界”和

之前的“世界”画上了不等号,但是这是个有一定合理性的假设,林励愿意说服自己相信。

很快林励适应了这里的生活,这对于本来对于自己适应力及其自信的家伙来说,也不是很意外。让林励意外的是,自己竟然习惯了和骏(D011)做朋友,可能是跨越两个世界的友谊。除了骏还是有些潜藏在内心底的傲慢,其他方面和林励很合的来,适度的温柔,少量的算计,充分的尊重和恰到好处的天真。

林励喜欢和这种人交朋友,尽管自己不是这种人。

新的一天,龙颚序的单人间和打工地点比真的像是家里的早饭之于食堂的早饭,一个是人感到温暖,一个是饭感到温暖。

骏就在林励的隔壁,不知道是不是故意选的,不过这样很好,至少有个照应。

“林励,今天是‘复活日’啊!”

“复活日?是类似复活节一样,就是eggs还有啥那个吗?”

“你不知道吗?今天是三方会选,复活之后你会跟随那一方进行学习。”

“复活?我会死吗?这个活动有危险吗?”林励笑了笑。

“听我父亲说,只有一小部分被这个世界抛弃的人在这个仪式当中会堕入深渊,任意一方也无法唤醒那个人。另外还有被三方抛弃的人,如果决心参加了仪式又被抛弃了的话,是不会被复活的,但是一般来这里的人,都会有‘天赋’被选中的。”骏看着林励淡定的表情,想要吓唬似的,“不过,你这个能力真的没见到过,还是有风险的。”

“他们能自己看到我们的‘天赋’?”林励掩饰住了快要爆炸的内心,只有生死会让林励失去百分之九十九的冷静。

“他们是‘C30’,‘凡人的箭头’中的三个,这个机构一共有三十个人,在这里有三个。他们是普通人当中的头部,掌握窥视人‘天赋’的能力。但是应该是几乎未被开发者的‘天赋’,而且他们也只能模糊感受,不能具体知晓。甚至有些人最后也不能完全知晓自己的‘天赋’。”

“他们很强吧。”林励关上了房门。

“很强。”林励似乎从骏的眼中看出了之前从未看到的尊重和羡慕。

“加油啊!”林励深呼吸了一口,慢慢走出了住宿楼。

孤独的水手漂泊在汪洋之上。

漂流的人啊,你看,远方的黑影。

是富饶的大陆,还是撕裂的天际?

​ 数学上有一个概念,叫做小概率事件。单次实验过程那些极小概率发生的事情,我们认为不会发生。当然,复活仪式经过了不知道多少次,极小概率的事情似乎很有可能发生。但是和数学实验不一样的是,数学实验可以重新开始,而死亡却无法逆转。这种期望代价似乎大的可怕,但是又似乎有大量侥幸的想法涌入林励清醒的大脑。还有一点,自己并不是这个“秩序”下的人,很有可能自己是不一样的,那么这种不一样究竟带来的是什么呢?清醒的头脑愈发混乱,一阵寒颤,恶心感袭来。一种紧张,超乎寻常的紧张,凌驾于对这个世界的好奇之上。林励似乎“冷”得停不下。

  “骏,我应该有权利不参加这个仪式吧?”说到底这种行为很有可能是自愿的。林励心想。

  “嗯?”骏看到和平时林励不一样的眼神,“入学手续上大家不都是作过承诺的吗?不过确实可以自愿放弃复活仪式,但是有必要吗?”

  “为什么没有必要呢?难道大家都相信自己不会被放弃?”

  “你给我的感觉就是,怎么说,算了。只要是按正常途径来到这里上学的人,复活仪式就像是一场体检罢了。跟你说了,前年那个不幸的男孩,也是自己把自己引向深渊——他通过伪造身份得以入学。但是确实有极少数人,相当少,处于一些个人原因,不愿意参加。就好像在米袋子里的石子,多少总会有一些。况且,不进行复活仪式,注定是一介凡人。”

  像是溺水的人浮出水面,呼吸到第一口新鲜空气一样,林励甚至感到了一丝幸福。“你可能要见到这样的奇葩了。”林励尽力掩饰自己情绪上的浮动,这种捷径还是不要走为好。

  骏还是注意到了,眼中有些失望,“原来,没事,我尊重你的选择。”骏转身,右手指向明天仪式的地方——一个足球场大小的平地,白色的瓷砖使这片地方格外显眼。“明天来看我啊。”林励从他的眼神当中再次看到了熟悉的高傲。

  “嗯,我会来的。”林励走向远处,若有所思。

  

  复活仪式当天,学生被要求排成一个圆,围绕着白色圆形的仪式地点。这里人称这里为“圣墓”。“圣墓”的中心,有两个中年男子和一个中年妇女。

  “他们就是C30,凡人的箭头,使者和凡人的沟通者。”

  “称谓还挺多。”林励看着周围,每个人都兴高采烈,几乎每个人都在因为自己要被选中而自喜。

  突然,一阵压抑的声音从中心传来,深渊的回音也不过如此。“龙颚的众人,高兴起来吧,你们即将体验堕入深渊的死寂和带着无穷力量新生的喜悦!”压抑的声音变的高了起来,“出于个人原因E067自愿放弃参加复活仪式,请带着无穷的悔意出列,前往看台。”

  众人的目光如同尖刀一般刺向林励,一些不知所措的人也跟随众人盯着这个“异类”。林励被这突如其来的点名重伤,大多数人都不会比林励更了解这种“惩罚”。自小到大,林励最厌恶的事情之一就是在大庭广众众目睽睽之下,自己的名字被大声提起,无论好坏。尽管E067这个陌生的称呼让林励恶心感延迟到来,但是事情的本质并没有任何改变。

  “这个人为什么要放弃呢?放弃的人竟然出现在我们一届!”

  “那是人家自己的选择。确实有些奇怪罢了。”

  “这就是懦夫!”

  “也许人家有自己的理由呢?不过违反入学的承诺真的是少见。”

  “你看,他的行为有些古怪。这种古怪的人确实会干一些古怪的事情。”

  “那他怎么变强?”

  “总要有人不会变强啊,不然,垫底你来当啊?”

  “也是。”

  众人的议论如同将林励的头摁进水池,给林励狠狠地灌了一口。

  林励快步走向看台,看台上大多都是教师和一些学校高层领导。这些人有的穿着白色长袍,有的穿着灰色风衣,大多都面无表情。林励在他们的视野盲区找了一个位置坐下,好消息是,他的同学没有再注意他。

  林励注意了骏的位置,也只是稍微留意一下,心里大部分位置都被混沌塞满。

  “这孩子是放弃自己了吗?”

  “已经有几年没出现过这种人了,那么为什么要让他来上学呢?”

  “明明已经有机会跳出水沟,却什么也不做。诶,悲哀。”

  似乎声音并没有刻意放低,他们一点也不在意被人听到。

  突然,琐碎的声音停止了,如同老师进入噪杂的教室一般。

  仪式,开始了。

​ 没有漫画里仪式的那种风云突变,能量涌动的情况出现,恰恰相反,整个仪式安静,平淡。一个个学生走到圆形中心,带三个人的注视之下,躺下,等待,坐起,站起,离开。只有那三个人嘴里念念有词,其他人鸦雀无声。即便如此,还是能隐隐的感觉到,这些人发生了某种改变。像是一棵树的树,树根蔓延到某个位置。

 三位凡人的箭头,代表着三种理念

 无畏,高傲,智慧。

 这次仪式之后,几乎所有学生都会成为这三种理念之一的奴隶,当然,除了林励。

 后悔吗?肯定不完全是。更多的是嫉妒。

 他们可以毫不犹豫地参加仪式,天赋可以得到质变,登上人生巅峰也说不准。最最重要的是,他们现在是一个群体,完成仪式的群体。而自己,不是。

 “多么格格不入,像小时候一样,我最讨厌的感觉之一。”

 本来自己就是外人,这个世界的外人。

 外人就该低着头活着,也只能低着头活着。

 孤独的,不一定是狼,还可能是,迷途的羔羊。

 林励快速经历了后悔,嫉妒,难过,担心,恐惧,最后归于平静。

 凌厉的眼神划过林励面前的一群教师,但是没有人感觉到,一群观光的人怎会注意身边的垃圾桶呢?

 在晚上的梦里,林励做着龙傲天的异世界冒险故事的梦,梦里自己无所不能,却不愿与世争斗。是一名强大无比的浪人,行走在世界版图的各地,书写着特别的史诗。

 然而,只是一场梦。

 梦醒了,却不愿停下。

之后的一周,无非就是“基础体术课”,“基础天赋开发”,“基础天赋理论”重复循环。当然每天都有“使者训练课”,也当然,这是给完成仪式的学生分学派进行的。像林励这种没有完成仪式的人,是不属于任何学派的,不具备上课资格。于是每天的整个晚上,外面的场地上就只剩下林励一个人在散步或者锻炼。一遍一遍温习这那些无味的基础课,感受肌肉的哀嚎。

 骏最终被“高傲”选中,非常合理,意料之中。

 经常的,林励安慰自己,至少自己和自己的影子为伴,拥有整个宽阔的场地,璀璨的群星和无边的苍穹。

 真正令人恐惧的不是孤独,而是自卑。

 望不到的终点,看不见的未来。身边的人已经过弯,直道却还行至中点。

 一步一个脚印已经不适合这种处境了吗?不。至少自己还没有缺胳膊少腿,至少还能呼吸着陌生的空气。虽然,那封信上的内容让林励很在意,但,那还是很远的事情不是吗?

 屋漏偏逢连夜雨。仪式之后的三个月后,学员测试开始了。

 学员测试,旨在对进行仪式后的学员进行测评。但和仪式间隔也足足有三个月,为的是让学员对自己的天赋有一定程度的开发,提升测试的质量。

 测试为期三天,本届学员一共52人。首先采取的是团队赛,两人一组,共分为二十六组。第一轮决出获胜的十三组,将抽签决定轮空,进行第二轮。第二轮之后将会有7组胜者,即14人。继续轮空,第三轮之后将会有4组胜者,然后进行随机solo,胜者继续,败者淘汰。

 最后的分数取决于达到的轮数和总体表现。

 整个文件被贴在学院的各个显眼地方。

 “又是一件不友好的事情啊。”林励敲了敲自己脑壳,同时用一种友好却贪婪的眼神看着骏。

 “你好,D011,请问可以和你一组吗?”

 林励极快地寻找到了声音来源,一位女生。

 披散的棕色头发,白皙微红的脸蛋,朴素的米色。。。“夹克”?修长漆黑的平底靴子突出了她出众的腿。但是整体给人感觉又不是很高。

 林励打量着,大概一米六五吗?差不多。颜值大概是身边人里面算是“优秀”的样子,但又不是那么不可接近。

 “D005,这是我的编号。”那个女生郑重其事的说道。平静的语言当中林励还是能感觉到一丝丝期待。

 骏(D011)眼睛依旧盯着告示,大概过了四五秒的样子,转过身去面对D005,那个女生。

 “我和我的好兄弟一组了,抱歉。”

 D005一脸惊讶,这种惊讶似乎不是出自对于一个男生的拒绝,而是对于这个男生的好兄弟——林励,不合群的弱者,幸运的悲剧人物,E067。还是一个E级!

 “哦?那好吧。不过我听说考核的成绩对之后使者的选拔好像有一定影响?不知道是不是真的?”

 “好像是这样啊。”骏心想,是不是真的你还用问啊?其实骏心里还是有一些犹豫,权衡之下还是决定遵从内心。一来是知己,和自己一样对这个世界抱有疑惑的人,二来以自己的力量和林励并不一定会输。

 “不过没关系,我们会走到最后的。”

 林励压根也没有想到,骏会在这个时候放狠话。

 “没事没事,为了朋友很正常嘛。一起加油啊。”D005故意卖了一下萌,随后便和其他几个学生一起走了。

 “谢了。”

 “这有什么好说的,再说了,你肯定在隐藏实力吧。”

 虽然是句玩笑话,但是听到之后林励还是有些像是考完试之后自己不停的重复,“完了完了考砸了”,旁边的人笑着说“太经典了,大佬,又说笑”的感觉。

 有一刻,林励不想再表情管理,想痛哭着说道“我什么都不懂,什么都不会,我是个废物”。

 可能,还没真正到极限吧。林励想。

 

 “D005,居然你会被人拒绝呢?谁会拒绝天赋异禀,温柔可靠,看起来天然无公害的你呢?”走在D005身旁的一个红发女生调侃道。

 D005没有立刻回击,她低下头,脸部表情从微笑到愤怒到微笑,嘴角上扬一个令人难以发觉的角度。没有看向任何人,

 “废物,让你说话了吗?”

 鸦雀无声。

 令人战栗的感觉袭击了每一个人。

 绝对不要惹到她。这是其它所有人得到的结论。

 

 巨大银白色的圆形“体育场”伫立在整个龙颚序地势最高的平地上。最外圈是铁板围成的保护区,然后是一圈两米宽的水渠,然后便是广阔的硬质土。

 “所有非战斗非管理人员请移步保护区之外的观看台。”

 “正如各位所见,整个场所俯视图已经发到各位手里了。需要说明的是,任何选手不得离开铁圈的范围之外。也就是说,水圈依然是战斗场所,这是为了天赋的公平使用所考虑的。”

 “比赛规则是在30分钟内任意一方投降,失去战斗能力或者违反规则即为败北。时间到之后,由各个老师根据战斗表现投票决定胜者。”

 “各位听清楚了吗?”

 “明白!”

 并不是那么响亮的齐声算是给这次测试拉开序幕。

 不同于以前学校的测试,这里的老师数量甚至可以和学生数量持平,加上其它管理人员,可能更胜一筹。

 果然是贵族学校啊!

 林励此时把玩着那枚硬币,如果说有什么代表着这个世界和我的不一样,也只有这枚硬币了。

 “希望它能给我们带来好运吧。”

 “我从来不寄希望于运气,当然它愿意出现,我也不会讨厌。”

 “希望你有些神奇的本领吧。”

 “还得多靠你啊”,林励不想显示自己的无能,但是也不想最后成为一个小丑,“我可是很弱的啊!”

 骏和林励作为第三场战斗的一方走向舞台中央。

 方才的战斗让林励看到了,这不是平常意义的打架。双方战斗的理由仅仅是测试需要,这种可能伤害别人的行为仅仅是为了高分?

 可是不战斗是不行的,必须是有所觉悟,抱着负伤的觉悟去战斗。

 对方不是普通的人,不全力以赴,不用尽计谋,是不可能全身而退的。更何况就算我现在想投降,骏一定是不会答应的。

 可是,我有什么呢?质疑充斥着林励的内心。

 比较不错的运动能力,身体耐力和爆发力也属于经常运动的那一类人,智商也不算出众。在过去的打架里,算是有一定威慑的水平吧。但是,他们可不是普通人。林励亲眼见到骏能将墙壁打出一个小坑。起初还怀疑是豆腐渣工程,结果空闲时间林励自己尝试,发现在能忍受的范围之内,甚至无法对墙造成肉眼可见的形变!连上面的漆都完好无损。

如果这一拳打到人的背部,或许会剧烈疼痛,甚至有骨折的可能。如果这一拳打到人的小腹,恐怕能直接送进医院吧。

 鬼知道谁还有更加变态的天赋呢?

 “各就位,开始!”

 随着不知何处的发号声音,比赛开始。

 林励打量着对方,一个壮硕的男子,大概的样子是健身几年的老手当中常见的模样。另一个是普通人身材,和骏以及我属于同一个量级。只不过绿色的头发让林励有些在意。

 “杀马特吗?”

 “什么?你一定是说一些嘲讽的东西吧。我看得出来。一会我不会手下留情的。”

 这台词真的太对了。

 “喂,D011,跟这小子一队,是对自己的实力很有信心啊。准备一打二啊。”大个子挑衅道。

 “说实话,一打二,很难吗?”

 “别说大话了,两个人的实力是远远大于一个人的两倍的。”

 “喂,他说的好像很有道理。”我开玩笑道。

 “林励,你最好别什么也不干。最好。”

 林励看到了骏的眼神当中划过一丝迟疑,随后恢复坚定。最近这段时间,时常听到诸如“D011又稳居前五候补”“D011进步飞速”之类的话,想必在天赋的强度和运用上必然是佼佼者。

 骏先发制人。“喂,记得吗?”

 “当然”林励和骏当然也在战术方面有所讨论,怎么充分发挥骏的优势以及自己的劣势。

 大个子做好架势,“彼此的天赋都是公开的,你也过于莽撞了吧!”

 据骏说,大个子的天赋是让自己身体极速升温,而自己却不会受到影响。再一次课堂上,大个子很快蒸发了自己身上被人恶作剧泼上的水。

 难以理解,如果骏的能力还可以归结为基因超群。那么,这种天赋貌似已经朝着玄幻的方向一发不可收拾。

 另外一个,因为平常比较低调,所以天赋也不是很明朗。大致就是让自己身子浮起来,但貌似不能做到飞行。

 话说,这么杀马特,怎么会低调?

 面对这样的组合,我们选择田忌赛马。

 “田忌赛马?什么东西?”

 “说了你们也不知道。”林励洋洋得意。

 常规作战显然对我们不利。是的,毕竟有我这个吊车尾。

 但是,在基于对骏的信任之上,林励制定了这一个对自己来说有些残忍的计划。

 看来对手一样是分开作战的想法,完全没有打团战的意思。

 此时,和骏对峙的正是杀马特,而林励则直面大个子。

 林励感觉到肾上腺素在此刻逐渐旺盛地分泌。不是别的理由,而是必要的打架行为。

 “看起来你很强啊。”

 “没有没有,害怕别人欺负我罢了。你小心一点,我不想不小心把你杀了”

 “哦?在我看来,你并没有我那么擅长战斗。”

 一时间,剑拔弩张。

 “我说,把那个杀马特交给优等生真的没问题吗?”

 “我知道你们想用你们的优势攻击软肋,可惜,他可不是什么软肋。我的挚友,甚至凌驾于我之上的特别。””

 大个子选择主动进攻,意料之中。

 林励快速移动身体,从目测来看,大个子移动速度相当与普通大学生,但是对于林励这种体育不错的人来说,似乎并不是很快。

 大个子继续冲刺着,试图与林励拉近距离。只要到双手可以触及的领域,林励就会是瓮中之鳖,连想要挣脱的机会都没有,身体的快速升温会让林励早早高举白旗。

 林励自然是不会给他这种机会。

 “喂喂,逃跑也赢不了啊。”

 “是啊。”

 林励一个急刹车,弯曲手肘,像是一个人体陷阱。只有一秒,大个子撞了上来,巨大的撞击力像是一辆摩托车的撞击。虽然两个人都被弹开了微弱的距离,但是显然,刚才的冲击使得林励坚硬的肘部与大个子的腹部相撞。林励是占尽优势的一方。

 大个子捂着腹部,却没有倒下。

 是经常锻炼腹肌的原因吗?强大的肌肉群像是劣质铠甲一样,多少有些防御性能。

 咦?林励感觉到了自己肘部有些火辣辣的感觉,有别于力的相互作用,是更为直接的热感。几秒之后,像是肘部碰到开水一样的烫感传来,让林励险些被大个子的一记直拳击中。

 如此快速的站起,就算是没有天赋也是打架当中令人忌惮的存在。何况,林励的肘部已经发红发涨,要是有厚皮保护的手掌兴许不会如此,手肘部居然起了水泡。

 尽管并不是开水一样的温度,但是娇弱的手肘皮肤还是开始了哀嚎。

 想不了那么多,林励一记扫腿踢在大个子腰上,大个子身子轻微震颤了一下,随即双手抱住了林励的腿。

 不好!这是林励所担心的,真正到了比拼力量的距离,将是自己的败北之处。

 腿部传来阵阵热感,由于裤子的原因还能缓冲一小会。“保持冷静,不对,保持亢奋!”只见林励借由大个子的身体,双手撑住肩部,另一只腿给了他头部一记飞膝,正中鼻梁。鲜血飞溅,甚至飞到了林励眼睛里,让他下一记直拳打了个空气。

 “喂,你没事吧。”

 “我们来这学校的时候,早就做好的觉悟。”

 大个子的湿透了的衣服渐渐干燥。不好,蒸发的速度超过水分产生,意味着体表温度进一步上升,不会真的到了开水温度?

 林励做好架势,准备应战。

 “扑通!”大个子单膝跪在地上,一只手扶着快要倒下的头。短时间的失血已经让大个子产生眩晕感,鼻血还在涌出。

 “请。。。请求退出。”

 不是选择投降,而是个人退出。这意味着在1v1的较量中林励获得胜利。只是比赛还不会因此结束罢了。

 “太好了,骏,我来帮你。你不会早早就结束了吧?”林励把视线转向了骏的方向,整个人缺僵住了。

 骏光是防守已经是拼尽全力了,而他的对手,杀马特,居高临下地进攻。

 “喂喂,你不会以为我只会让自己浮起来好让咋两平视吧。你还没做好觉悟啊。”

 “喂喂,这么夸张吗!”林励看到了杀马特竟然在用自己的腿猛击骏护住头部的双手,越来越迅速,越来越有力。不好,很快,骏就要放弃了。

 “别过来,好好站在那里,让你看一下我的力量。”

 林励感受到了恐惧,恐惧并不是来自于骏被狠狠地压制住了,而是即便对手隐藏实力,骏还是那么冷静,沉着,留有余力。

 不好,林励已经看到了骏手上的红肿,似乎已经逼近极限了啊!

 不,并没有,仔细观察,骏并没有任何的沮丧,而是在狂喜。他在狂喜,是的,他并没有觉得身处绝境,恰恰相反。

 一个刹那,如果视线没有紧紧钉在两个人身上是绝对无法察觉到,骏的右手在一个瞬间握住了杀马特的右腿,只是接触时间非常短暂难以察觉。

 时间在推移,这种情况愈发的频繁,接触时间也越来越长。就好像使用金属疲劳反复去折一根铁丝,临界点已经不远了。

 实际上临界点出现的时间比林励预想的还要早。只见骏牢牢地抓住了杀马特的右腿,这一次杀马特再也没有挣脱,被活生生的拉入地面。像是断了翅膀的雄鹰落入了雄狮的领地,最终的下场已经无需多问。在骏超越常人的臂力之下,杀马特被反复摔打,蓬头垢面,鲜血已经从额头渗出。

 “结束了。”这个学院的校长,C099,人称“龙主”的中年男子示意准备下一轮比赛。

 “我投降我投降。”

 可是战意没有逝去,骏无法停下自己的双手,并不是真正的无法停止,是不想停止。大脑像是高潮,莫名的快感冲击着骏,骏从来没有如此感觉,兴奋,幸福。每一次殴打,都带来强烈的成就感,每一次击打都让下一拳更加沉重。

 林励有些惊讶,但很快恢复冷静,冲到骏的面前,他知道,骏已经不可能听到他说的话了,于是,林励效仿电影里的一幕,一拳打在了骏的脸上,希望这突然的一击能恢复骏的理智。

 不过,接下来发生的和电影似乎有些出入,林励脑子突然一恍惚,自己已经倒在了地上。

 “咦?你干什么?艹,你tm在干什么!”

 不由分说,骏依然在享受对猎物的殴打。

 不行,完全没有办法拉住他。对付一个普通人完全没有问题,可是这家伙,不是一般人啊!即便不是电影上那么夸张的力量,也不是正常人能束缚住的。更何况人在战斗当中会释放大量肾上腺素,会使得力量更上一个台阶。现在的骏,简直是一头野兽!很难想象,平时的他,是一个举止优雅的绅士!

 刹那间,世界前所未有的寂静,骏停下了一切动作。林励只是感觉有一些恍惚,困倦,自己好像跳入了无尽的深渊,在掉落的空中,失重的感觉袭来,过了许久,深渊的尽头出现,林励突然醒来。

 “你醒了,不错的成绩。比之前大部分人醒的要早。”

 “你是。。。?不对,我在。。。?不对,发生了什么!”

 一尘不染的房间里传来了可人的女声,清澈和那般一不小心就会失神的温柔。

 “你们真的很有趣诶!”

无名之辈·起始篇

“不是吧,兄弟,你已经是一个大学生了,不会真的有人还在上晚自习吧?”

林励并不是很想搭理吴风,但是过多的解释又会带来无休无止的闲谈,思考了片刻,林励决定以毒攻毒。

“不是吧,兄弟,不会还有人来这听听力吧?”

对,语气一定要恰到好处,攻守兼备,终结话题。

“瞧你说的,我这不是为了陪你?嗯?我怕你太孤独,太寂寞了呀!”

不对劲,平常一招就已经定胜负了,好在我还占据主动。林励想了想,一本正经地说道,

“没关系的,我一个人效率更高。”

这确实已经是一个大杀招了,几乎等于明示。

“好吧好吧,别说话了,影响我听力了,知道吗!”

终于安静下来了!这话术我还不曾输过谁。接下来,嗯,该数据结构了,我去,还有这么多题,林励看了看表,9点17分,还差1个小时关门!该加速加速了……什么动静,我耳鸣了吗?

“我说老吴,老吴,你有没有听见什么动静?”

“我不是很想和你说话,跟你说了,听力!听力!”,吴风其实也听到了一些动静,就和平时耳鸣一样。

吴风心想,难道我耳机戴时间太长了吗?这是不是在提醒我停止学习好好做人了?!转头看向林励,他好像又说些什么,可是,说了些什么呢,好像真的有些听不太清,不仅听不太清,甚至还有点看不清……

“老吴,老吴,吴……”林励现在只能听见一点点自己的声音,声音有些奇特,比平常更加有质感。

所以,现在到底发生了什么?

林励此时望向窗外,本该是夜晚的校园明如白昼,不,是白昼在从远方扩散而来,渐渐地淹没了一些…….

不详的感觉喷涌而来,这白昼绝不可能是什么好现象。但是,没有办法避开,扩散的速度实在太快,视野越来越模糊。

“你在干什么,林励,你TM在干什么!”吴风已经躲到了桌子底下,做了最后能做的事情。

林励从笔袋里摸索出那个一元硬币,那枚从中学带到大学的硬币,每次遇到重要的决定,每次在优柔寡断之间快要窒息的时候,他会选择相信它,那50%的几率。

这次是好是坏,给我一个答案!他接近迷信地将硬币抛起,硬币翻转着上升,正面反面交替面朝天空,笔直的直线冲向天空。

什么呀,这里可是二楼啊,不是天台啊,为什么能看到天啊!硬币还在翻转,不过已经看不清那个硬币了,渐渐地,它淹没在白光之中,林励到最后也没能看清,落下来的究竟是什么……

“E067”一个男性的声音传来。

E067?对了,我是E067。

不对,我不是E067。

不是E067我是什么呢。

我是……,我记得我有名字,应该不是E067。

我不想死,我不是E067。

我是谁呢。

我…,应该叫,林…

林励!这是哪!林励开始有了意识,眼睛渐渐睁开,眼前的一切让他以为他在做梦。

他躺在床上,床在屋子里,如果仅仅考虑这些概念好像是现实,但,这床压根就是一块木板,这屋子分明像牛棚!意识渐渐恢复了正常,但是慌乱却没有平复。

这是哪?我被拐卖到山区了吗是这样吗?林励马上下了床,环顾四周,没有人看守,又不太像被拐卖了,再说了哪有拐卖大学生的。

卧槽,不会是器官贩卖吧!

林励摸了摸身上,似乎也没什么太大变化,甚至衣服,包括衣服里的东西都还在,居然还有那个一元硬币!

不过周围的环境贫苦得厉害,这不就是电视里最最最偏远山区的样子吗!阳光居然能透过屋顶照在土地上,是真正的“土地”,周围除了大大小小的水缸外,只有一个铃铛挂在了床头。

他并没有去随意触碰这个铃铛,而是小心翼翼地推开了门,一个男人站在门前,似乎有些惊讶。

“你醒了,E067。”声音有些低沉。

这个全身都是灰色的男人胸前印着一串字符。这一定是某种标记,林励想到了当时脑海当中的声音,和这个男人有几分相似。

“嗯,我醒了,E066。”

那个男人似乎非常满意,甚至开怀大笑,

“我知道你死不了的。”

“嗯,也许吧。”

林励来到这里已经三天了,这几天他也渐渐了解了一些东西,关于这里的东西。他已经有空开始整理这些信息了。

首先,这里的人以“代号”相称呼,比如林励他自己就是E067,另外那个男人就是E066。似乎周围的这些人都是E+数字组成的字符,不过不知道还有没有其他字母,字母一定有某种含义在里面。

其次,这就是山区。是更加落后,贫苦的山区,没有任何电的产品,更加倾向于深山老林一样的感觉。几次他都想走出去,可是这里的山路像迷宫一样,与其被困在荒无人烟的地方,还不如在多准备准备再出发。

再者,自己的穿着居然在这里引起了不小的关注,显然这里其他每一个人穿着都是灰色的衣服裤子,无一例外。本来自己的穿着挺保守,怕在学校引起什么注意,现在竟然成了奇葩一个。不过其实这里的人还好,尤其是那个E066,对他还是很照顾的,一直听他说自己是他的好兄弟,至于原因,好像就是E066和E067从前在一个地方打工,互相照顾。这么说来,打工?也就是他知道有城镇的存在喽?“那么这是M市吗?”每次自己这么问,他总是摇摇头,每次都是。那么,这里是中国吗?他又摇了摇头。我甚至不明白他是不知道,还是不知道。语言既然相同,这里不是中国是哪?再问下去也是白搭,还不如自己找答案。

现在为止,最最重要的事情就是,离开这里。

林励也不想引起注意,想从男人那里要一件一样的衣服,得到的答复却是,

“一人一件,你的那件在这。”

男人递过来一件仔细叠过的衣服,不过补丁还是非常明显。

“这些衣服难道不一样吗?”

男人摇了摇头。

“有什么不一样呢?……哦,我明白了。”

林励笑了。自己已经是E067了。

有一说一,这里的茶还是不错,不过为什么说不错呢?其实林励也不怎么会品茶,但喝了之后,总会有种莫名的舒适感。

可能是,我已经开始适应了吧?他这样想。

经过了几天观察,发现自己在的地方就是一个自给自足的深山老林,像是一个小的村落,虽然这个结论早早就已经下过了,但是将这个结论确定是多么令人痛苦。

不行,我不能一直待着!眼下唯一的希望就是从这个E066身上获得一些信息。

“挑水呢兄弟!”

男人冲着林励笑了笑,却没有说话,自个挑水走进屋里。

什么啊,这么腼腆?不对,这,感觉就是木讷!冲我笑干嘛?我认识你吗!

可能是这几天的等待让林励有些烦躁。

他直接冲进屋里,质问道,

“告诉我,兄弟,告诉我你能告诉我的所有事情!兄弟,不然我在这里待不下去的!”

他从那个补了两个补丁的口袋里掏出了一张叠好的纸,似乎是什么重要的信。

“看完它,还给我。”

“…”

看来这确实是什么重要的信,给谁的呢?林励打开了信,男人却急急忙忙地出了屋子。

“这!这…”

林励将信重新叠好,还给了男人。

不敢相信眼前的一切,这个信里的故事真的是匪夷所思。看来这个已经不是我这个相信科学的人可以理解的事情了。不过,实践才是真理,这,总是全宇宙通用的吧。林励苦笑了许久,终于,渐渐适应了。

“走,收拾一下,明天就去你,哦不,就去我们打工的地方。”

数十米古围墙绵延数里,入城的车马络绎不绝。墙外是数十平方千米的平原,然后才是绵延的山峦。不过最奇特的,要数那比城墙还高的龙首雕像,不知道那里到底是什么神奇的地方,反正,一定很有意思吧。

虽然林励在网络上见到过高它几倍的大楼,但是这种压迫感,是远远不够的。

林励刻意地让E066走在前面,毕竟自己又不识路,但是又要时刻装得驾轻就熟,这就非常难受了。花了整整一天的时间才从半山腰(可能是)下来,已经坚持了一天了,还需要时刻面对E066那“天真无邪”的笑脸,回复一个不失礼貌的微笑,真的好累啊!

所以,为什么,为什么我要为了别人活着?

别人,别人算什么啊!

可是,我做不到啊!

我,为什么没有拒绝呢!

我有拒绝这个选项吗?没有!

“到了。”男人再次露出了笑容。

林励再一次回以礼貌地微笑。

“你和以前一样爱笑。”这句话让林励猝不及防,原来,他也会说点有人味的话啊,还以为你不会呢。

“这是?”

“餐馆。”

“不用了,我还不是很饿。”林励是真的有点怕麻烦。

“不是,我们在这打工。”

什么?!

“这个玻璃怎么擦的!你看没看到啊,干了之后更花了!”

“这,没办法,怎么擦都会有的啊。”

“什么?你看看E066怎么擦的,好好学学,怎么这么久不见,干活都不会干了!”店主(D101)有些生气地说道。

林励看向E066,只见他左手拿着一块抹布,右手也拿着一块抹布……

林励恍然大悟。我的天,我懂了,一块干的一块湿的,我去,以前家里好像就是这么擦的,我怎么给忘了!不过,这也太麻烦了点,真的没有什么方便的工具吗?也不知道工资多少……

那该死的太阳总算下山了,第一天的打工日子有些不太顺利地告一段落了。

一个餐馆旁边偏僻的小楼,林励,E067,躺在了一张对于脊椎不太好的人很是合适的硬板床上,当然,除了对脊椎好之外,简直就是灾难。不过比起山上屋子里的裸木板,至少还有些布制品包裹,有些地方,透过布料,还是能看出棕色木头的样子。

旁边,另一张床上,就躺着E066。

林励反复在脑海中思索着关于信里的事情。

你,原本的你,究竟为什么,要做到这个地步?

我,无辜的我,究竟为什么,要走这条路,甚至你都没告诉我方向在哪。

“我说,兄弟,你们这打工……,不是,我们在这打工……,我的意思是,最近这个工资有没有涨钱啊,还是之前那个样吗?”

“周结,0.5”

“说完了吗?0.5什么?元???不会吧。”

“元?那是什么?”

看到E066那疑惑得不行的表情,林励忽然明白了一件事情,这里不能用现代社会的尝试去理解事物,不如当做穿越到异世界那种理解模式。

“没事没事,我可能有点忘记了。”

这个理由的确是万能的。

“大多数人的钱,就是这样的说法。”

大多数人?没有单位?不是全部的?

“那……”

林励刚想会问过去,发现E066已经将头转过去了。这时候,确实不应该再问下去了。

确实,这几天店里面管吃管住,自己没有任何消费,下意识以为这里是一样的。没想到……

这有限的对话时间真的是难得,明天早上又要7点起,晚8点退。真是难得这里居然有时间观念,不过店里面像样的钟表也并没有看到,每次只是听到店主喊到时间,真的挺离谱的。

林励此时有了困意,但不是很强烈。以前经常的,只要晚上在想些事情,无论白天多么累,大脑始终会处于一种活跃的状态来击退困意,不过下一天早上会格外得累。

再过几天,我熟悉了这里,还有件重要的事情要办。

真有你的,“E067”。

工作的六天终于过去了,打工,从窗户到桌子,甚至到厨房,都要涉及。每个打工人,都是六边形战士。

“该付你们工资了。”又是那个长头发男人——店主,D101。

只见D101拿出了一个笔,金属光泽,在林励和E066胸前的牌子上沿着标号描了一下,笔的末端还散发着红色的光。

这应该,是科技吧。林励心想。怪不得没有单位,这种是类似于点数一样的东西,对吧?

林励回想起在餐馆见到过有人被一个笔描过胸前的序号,但是那时,笔的末端散发着绿色的光,是不是意味着那时花钱呢?

“行了,你们休息去吧。”店主轻声说道。

“好好,谢谢您。”林励脱口而出。

“谢谢。”E066笑了笑,转头走开了。

那么接下来,还有个很重要的事情要处理!林励笑了笑,转头跟上,

“并且这件事,还不能跟你说。”

龙颚之塔,这个城市最高的建筑,笔直地伫立在中心市区的圆形广场上,塔的四周由近及远分别是圆环河道,圆环草坪,圆环石子路。龙首在塔的顶部,守望着东方,每天迎着太阳,目视着太阳,气势让人生畏。

这里的建筑或者说一切,有一种现代和古代的结合,一种说不清的暧昧。金属泛着特有的光芒,木材制品却随处可见;玻璃在一些店面大量使用,纸糊的窗户也不在少数;胸前序号扫描技术都已经存在,电子产品却无影无踪。种种这些,让人极其难以辨别它的年龄,岁月的年龄。所以,到底是什么,造就了这些,时间的错位?即便是普通常见的事物,这里的运行仍然让人感到不自然,仿佛有着什么,在欺骗着世界的规则。

即便是一个城市内,也有着双重的结界分离着不同的人们,这便是内城墙。和数十米的外城墙相比,七八米的内城墙显得矮小不少,但是显得更加重要。四个入口控制着进出的人群,每个入口有三名士兵把守着三米左右的拱门,来往的车马也不是少数。

林励独自一个人,来到了这里。

“队长,你看这人”,一个看起来三十岁左右的士兵朝着他旁边的士兵说道,“是E。”

“E?不会又是新生吧,去问问。”

“小子,来内城做什么?”被叫做“队长”的那个人朝林励喊道。

“参观……不是,我是找人。”

“找人?不是去龙颚序啊?”

“龙颚序?那是哪?”林励也确实没有从任何地方得知这个地方的名字。

“行了,不是去那的。该怎么办怎么办吧。”

“队长”示意了他旁边的士兵,那个士兵气势汹汹地走了上去,

“E067。离开这!”士兵已经准备将林励给架走,

“我是找人的,真的是。”

“无非是想进内城是吗?E067。”他小声地对林励说道。

“对对,我很想进去。”

“那你真的是在做梦,给我滚!”声音大的可怕,几乎所有人都听到了这句话。

当然,几乎所有人都露出了鄙夷的眼光,只有几个女人露出了该死的怜悯。

这里的人,真的是太不友好了。

林励朝士兵奉承地笑了笑,

“兄弟,大哥,我找D059。对了,你们认识他吗?”林励瞥见了那个士兵手腕上的序号,D179。

“D059?”

另一士兵也走了过来,

“查一查D059。”

D179查了一番过后,整理了一下自己的帽子,

“队长,D059是一名龙颚序的教师。”

那个“队长”似乎有些惊愕,但很快的恢复了平静,然后又露出一副好像之前的事情从来没有发生过一样的表情,

“准许通过!”

不过随后的表情却有些微妙,那似乎是嘲讽似的笑容,终于露了出来。

D179?林励边走着,边在回忆。果然是社会等级制度,这落后的地方,刁民!有些生气,但是他无处可发泄。已经多久,没有受到过这种区别对待了,林励已经快忘记,如何对抗这种人了。

“你来了?”一个皮肤黝黑的光头男子转头看向林励,额头上一道水平的疤痕触目惊心。中年的样子,青年般的强健体魄。

“你好。”林励仔细打量着眼前这个男人,要比一米八的自己矮了半个头,但是差不多等于一个半自己的宽度!整个手臂像一般人大腿的粗细,青筋暴起,皮肤似乎和床板一个颜色,加上那个骇人的伤疤,整个形象活脱像一个悍匪,一个训练有素的悍匪一般。没想到这种人,居然在学校任职!也是,人不可貌相,也许就是从战场上归来的老兵改行训练了罢了,要说是雇佣兵也没有问题。

“里面说。”男人的语气十分客气,举止十分有礼,这让林励有些不适。

进了一个教室,教室里空无一人。

“那个……”

林励其实也没想好如何开口,毕竟是个很玄乎的事情。

他在等着他。

林励知道,这个男人在确定某种东西,犀利的目光无时无刻不在像自己袭来。

“你的老朋友失忆了。”

“什么?”

林励很奇怪这人的听力会有些问题,再次强调道,

“你的老朋友失忆了。”

没错啊,信上就让我这么说的,一个字都没有问题。林励心想。

男人目光中有一丝游离,但很快恢复了锐利。

“没关系的,我会帮你恢复记忆的。在这个过程当中,你要到龙颚序来上学。”

“我能不能问一下,其中的原因,毕竟我也记不起什么了。”林励还不能确定,眼前的这个人是否真的值得信任,或者说,E067之前有跟他说过什么吗?

“让自己变强,才能生存的更久,这也是你以前经常说的。”男人将自己的左手伸出,手腕上印有黑色的序号,D059,

“你还需要了解更多,老朋友。”

有一刻,林励有些惊讶,来源于对于序号这种未知科技的吃惊,D,E,手腕,胸口,这确实有某种逻辑上的递进,还有一些科学上的渐进。

难道,这是一种魔法吗?对了,这是不是真实的科学的世界还是有待商榷的事情啊!

林励发现,事情的发展在朝着不可理解的方向前进。

没关系,我一定会适应这里的,以前也是,现在,也是。无论什么局面,我都能适应。

林励心里波澜乍起。

(本章结)

1 前言

2017年Google提出Transformer模型。过去了四年,想要入门Transformer原本是非常容易的,网上的资源一搜一大堆,但是大同小异,或者说没说到的地方都没说到,初学者看了之后除非悟性极好,否则还是不能理解(比如我)。所以我想尽量详细地叙述这个模型,综合网上各种贴子,可能你会有熟悉感。

修完大学公共数学基础三部曲即可。

2 总体概述

首先祭出这张最经典的论文图。

总体上Transformer模型使用的是 解码器-译码器 的模式,即encoder-decoder。直观上讲,

就是一个输入,被输入到encoder模块当中,encoder模块输出一个中间产物,中间产物被decoder使用(应该是反复使用),结合decoder本身的输入,经过一系列运算,输出结果(中间结果)。

理解上可以当做一个阅卷过程。encoder是试题组,综合考卷试题,给出一个给分细则,decoder像批卷老师,decoder输入是一份未批阅试卷,老师一手拿着给分细则打分,打分收到你之前题目作答情况,比如之前老师觉得给分太低,这时候有可能补偿式打分,最后将整分卷子批完。当然,给分一定合理吗?并不是。​

这是个大概理解,接下来才是重点。

3. 各模块分析

Encoder

1. input embedding (输入嵌入)

以翻译为例。我要翻译一句话:I am a man.

我们中间是要对其进行数学运算,显然字符不合适,需要转化成数字。比如 数字1表示 I ,数字2表示 am,数字3表示 a , 数字4表示 man。只不过这是最朴素的想法,事实上一个句子中的每个单词,都有个词向量去表示,例如 man 可以表示成

这个叫做$one-hot$编码方式,最简单的一种,直接“看式思义“。但是这个词向量长度维数非常高(不应该叫”长度“, “大小”感觉还可以),存储开销比较大,于是利用某些技术,降低维度,

某些技术指词嵌入技术,比如$Word2Vec$​​, 可以在本站搜索,没搜索到应该是我还没写。 = =

转化成向量,很多计算就更加方便了,可以牵扯到矩阵的运算。向量->矩阵。

0 1 2 3 4
I $x_{(0,0)}$​ $x_{(0,1)}$​ $x_{(0,2)}$​ $x_{(0,3)}$​ $x_{(0,4)}$​
am $x_{(1,0)}$​ $x_{(1,1)}$​​ $x_{(1,2)}$​​ $x_{(1,3)}$​​ $x_{(1,4)}$​​
a $x_{(2,0)}$​ $x_{(2,1)}$​ $x_{(2,2)}$​ $x_{(2,3)}$​ $x_{(2,4)}$​
man $x_{(3,0)}$​ $x_{(3,1)}$​ $x_{(3,2)}$​ $x_{(3,3)}$​ $x_{(3,4)}$​

这样一个句子就转化成了矩阵,每一行是一个单词的词向量。实际上词向量列数有很多,整个矩阵大小是$sequenceLength\ ×\ d_{model}$​​​​​​​​​​​​​​​​​​​​​ , 而真正的输入$X$​​​​​​​​​​​​​​​​​​​​,是很多个这样类似的矩阵,是一个 $batchSize\ ×\ sequenceLength\ ×\ d_{model}$​​​​​​​​​​​​​​​​​​​​​​​​ 的张量。

$d_{model}$ 论文中大小采用512。

$batchSize$​​ 一般指同时代入训练模型的实例个数。因为你总不能把所有句子所代表的矩阵全扔进去。

2. position embedding (位置嵌入)

位置信息在翻译当中是重要的。

You do like it. (你确实喜欢它) Do you like it? (你喜欢它吗?) 翻译上存在不同。

position embedding 就是刻画位置信息的编码,类似于词向量。

分为绝对位置编码,三角式,训练式,相对位置编码等等。建议阅读,

https://www.zhihu.com/search?type=content&q=transformer%E4%BD%8D%E7%BD%AE%E7%BC%96%E7%A0%81

论文当中采用三角式,

$PE(pos,2i) = sin(pos/10000^{2i/d_{model}})$

$PE(pos,2i+1) = cos(pos/10000^{2i/d_{model}})$​

$pos$​ 是单词在句子中的位置,$pos\in [0,sequenceLength)$​ , $i \in [0,d_{model})$​

而事实上,目前三角式用处比较小,相对位置编码更加重要,见

https://mp.weixin.qq.com/s/vXYJKF9AViKnd0tbuhMWgQ

最后信息添加的方式也非常简单,直接将输入矩阵$X = X+PE(X)$​​​​

3. Multi-Head Attention (多头注意力机制)

这是核心部分。

首先是$Q,K,V$​​。

我们在之前得到了处理过的$X$​​了,我们需要用$X$​​得到$Q,K,V$​​​​​​. 转化如下(图中三个Linear部分)

$W_i$ 一般情况下,最初可以是个$d_{model}×d_{model}$ 的随机矩阵,要“学习”的内容也正是它,因此他的初值可以是随机的。那为什么要转化成三个不同矩阵呢?原因是为了将输入矩阵映射到不同的子空间,增强了表达能力,提高了泛化能力。

下面我们先看不进行分头处理的注意力机制,就是解释下述公式。

我们先看 $QK^T$ 是什么。

$QK^T$ 是一个 $d_{model}×d_{model}$ 的注意力矩阵,每一个元素 $(QK^T)_{ij}$ 表示第 $i$ 个词和第 $j$ 个词的相联程度,而这种相联程度使用对应词向量的点积进行描述。

比如向量 $e_1,e_2$ 相似程度,我们可以用点积量描述,如图

$\vec{e_1}·\vec{e_2} = |\vec{e_1}||\vec{e_2}|cos<\vec{e_1},\vec{e_2}> = cos<\vec{e_1},\vec{e_2}>$​​

在向量运算当中, $e_1$ 比 $e_2$ 和 $e$ 的相似程度更高。

那么为什么要除以 $\sqrt{d_k}$​ ?作用是把注意力矩阵变成标准正态分布,使得 $softmax$ 结果更加稳定。

那$softmax(x)$​ 是个怎样的函数呢?

Softmax函数,或称归一化指数函数,是逻辑函数的一种推广。它能将一个含任意实数的K维向量 img “压缩”到另一个K维实向量 img 中,使得每一个元素的范围都在img之间,并且所有元素的和为1。 ——百度百科

例如,$x = [1,2,3]$​ , $softmax(x) = [0.09003,0.24473,0.66524]$​​

可以发现 $softmax$ 函数将向量元素之和归一化到1,并且“放大”了元素之间的差值。

不过存在的问题就是指数运算过后,可能有上溢/下溢,解决方法就是对其进行变式。

经过这一系列处理,得到一个注意力矩阵,可以看作一个评分机制,或者是权值矩阵。我们再乘以 $V$ ,本质上是对 $V$​ 做一次求加权均值的过程。这样整个 $Attention(Q,K,V)$​ 就获得了句子整体的信息。

最后我们来解释多头的含义。

所谓多头,就是指将矩阵均分成 $h$ 组,每一组分别做注意力计算,最后我们再将他们连接到一起,再做一个线性变换,得到注意力层输出。需要注意的是 $h$ 需要能整除 $d_{model}$ 。

(论文中 $h$ 取8)

我们说注意力机制是一种词和词之间的关系,一个词在每个头更“关注”的部分不同,使用多个头可以反映这种不同的关注,接合起来使得矩阵蕴含更复杂的信息。

4. Add&Norm (残差连接与归一化)

$Add$ 过程是一个残差连接的过程,做的事情就是 $Output_{Attention} = Output_{Attention} + X$ 。这一处理主要目的是防止梯度消失

$Norm$​ 过程是一个归一化的过程,主要目的是将矩阵按行化为标准正态分布,加快收敛过程,加快训练速度。

5. Feed Forward (前馈神经网络)

前馈神经网络主要作用是提供非线性转换,增强模型泛化能力。非线性部分指的是 $ReLu$​ 函数,常见的一种激活函数。

Decoder

6. Outputs (解码器输入)

解码器也是有输入的,输入为译码器输入句子的译文。这种译文输入形式类似译码器输入,并不是“翻译”结果,这个 $Outputs$ 是我们给定的。但是我们并不能让模型以一个“上帝视角”去学习,如果整个译文信息在翻译时被全部观测到,那“学习”是效果差的。所以需要 $mask$​ 技术使得翻译时不能够提前得到词的信息。

7. Masked Multi-Head Attention

$mask$ 分为两种。

其中一种 $mask$ 是一种填充 ($padding$) 技术,因为句子长度不一,我们并行处理的张量规模需要一致,因此我们选择其中最长的句子长度作为句子的尺度,空出来的部分(灰色),使用 0 填充。

第二种 $mask$ 只在 $decoder$​ 中使用,注意蓝色和橙色部分。我们不能利用未来的信息,所以也需要 $mask$​​ ,所利用的是之前的译文信息。使用 $-inf$ 填充。

8. Linear && Softmax

$Linear$​ 负责将得到的解码器输出映射到一个高维向量,维度取决于词典大小。

$Softmax$ 负责将这个向量转化为一个类似概率的输出,这样我们把概率大的词作为翻译后的词汇。

3. 过程

例子 I am a man.

首先我们需要一个词典,记录用到的词。还有开始符(BOS),结束符(EOS),也被记录到词典里。

初始时,只有BOS一个符号。我们把句子以张量形式输入到译码器中,注意解码器和译码器并不是只有一个,而是有 $N$ 个复制。$Transformer$​ 的特点之一就是方便并行处理,提高效率。通过编码器我们得到一个隐藏层 (中间矩阵),这时候我们利用这个编码器输出矩阵线性变换为解码器的 $K,V$ 输入,另外解码器还有输入部分就是给出的译文信息变换成的 $Q$ 。注意到编码器输出是要给到多个 $Decoder $ 的。每次翻译一个词,如下,

BOS -> BOS 我 -> BOS 我 是 -> BOS 我 是 一 …… -> BOS 我 是 一 个 男 人 EOS

我们定义损失函数,和真实翻译结果比较,运用反向传播算法,更新权值矩阵。

4. 结语

考虑初学理解有限,有不对的地方欢迎指正,也请详细说说,谢谢!

2021/9/1 BRB, a Observer

应该叫作,一个开始

应该先从blog的题目开始说起。As the bug of fate. 扑面而来的中二气息,可能你过了许久,看到这里仍然不太适应。很好,要的就是这种感觉,当你适应了,那更好,你是这个blog的挚友了。核心还是对于这个bug的理解。B-U-G。如果你对这个题目的理解是,super lucky man,那么显然和我不在一拍上。Bug 就是 bug。从主体意识诞生,脱离主体掌控,给予主体混沌。既然已经是命运的弃子,做一个fate的漏洞有什么不好?至少,我的坏运气来自我的无能,我的好运气,来自我的强大,我的所有抱怨,都将说给我自己。

这是一个测试,我不打算删除。