创作手记
本文涉及全书诡计、凶手、动机与全部解答。请读完小说正文后再读。
一、这本书从哪来
这本书的起点是一个术语。过拟合,意思是模型在训练数据上表现完美,换了新数据就失效了。我当时一直在想,把这个词放进本格推理里会发生什么:如果一个侦探的理论足够好,好到凶手可以直接拿来用,那会是个什么样的故事。
所以这本书的核心其实不是"谁是凶手",而是侦探的理论怎么一步步变成凶手手里的工具。松枝的签名理论在前三个案子上是完全成立的,每一次命中都是真的,问题从来不在理论本身,在喂给理论的数据里。早川做的事说起来只有一个动作:四月里的一次数据清洗,他把佐藤的职员编号从 215 改成了 216。三个月后松枝解出了那条轨道,亲手用这份被编辑过的数据,把佐藤踢出了保护名单。理论没有错,数据被策展过——这六个字写在第二十二章的白板上,也是全书的诡计。
二、诡计的设计
机制说起来是主键加一条轨道。主键 m 决定谁进名单:学籍号能被 165 整除,而 165 是高野案现场那串计数的下一项(n 个交叉点下的素纽结数,3、7、21、49,再往下数就是 165)。轨道键是第三案之后松枝自己解出来的精化条件:白村案白板上那条曲线 y²=x³−6x−80(mod 199)其实不是椭圆曲线,它判别式为零,是一条退化曲线,光滑点构成一个乘法群。标记点 M 在群里的参数是 2,于是倍点的参数就是 2 的幂,各倍点的横坐标排出来正好是六个格子。六个职工的编号对 199 取余,恰好一人一格,1、2、3、5、6 都有人,第四格空着。三浦案墙上那张被判成模仿犯的手写数列题(mod 165,问第 44 项),答案是 16,正好是第四格的坐标,也正好是佐藤原始编号的余数。这些数全部用代码算过:215 除以 199 余 16,落进第四格;216 余 17,曲线上横坐标 17 的位置没有点(154 是非二次剩余),落出。佐藤的原始编号其实从来没有出局过,他是被一次最小的编辑挪出理论视野的。
早川的刀法在时机和戏服上。四月他改编号的时候,轨道还不存在,改一个数什么也不影响;等到八月松枝把轨道解出来,那笔编辑才变成刀子。教松枝开这台机器的那张纸,被他刻意写成抄报纸的模仿犯作业——165 这个数之前恰好泄露给过媒体,松枝看了一眼就把它扔进了抽屉。机器在六月的白板上,说明书在七月的纸上,两样都是他递的。这就是"凶手等于策展人"在数学层面上的呈现。
这套机制前前后后改过很多版。最初的设计是 AI agent 出的,现在回头看很偷懒:白板上画一条椭圆曲线,实际筛选只是把编号对一个素数取模,出的题约等于初中水平。第二案的签名最初也是 AI agent 给的,一串质数,7、13、101,下一项 103,既牵强,又和纽结一点关系都没有,莫名其妙。后来的改动都是我(Q拉比卡)指导着做的:先要求曲线在有理数上必须是真的、坏约化要恰好藏进模的那个素数里,再往后干脆让曲线退化,让奇点本身成为乘法机器,第四案那张"模仿犯作业"到这时候才有了说明书的功能。第二案的签名换成了素纽结的计数序列,3、7、21、49,下一项 165,而 165 同时是主键和中村的学籍号——签名、名单、死者,从这一版起才正式衔接起来。
三、伏笔工程
伏笔的埋法只有一个原则:把凶器放在证物桌上,然后告诉所有人这是一把尺子。第三章的清洗场景里,215 和 216 两个数字是当面对白念出来的,编辑在松枝、伊达和读者三个人的眼皮底下完成,留痕齐全,理由充分。第三章埋的"多停了一秒",到二十二章和二十三章两度回收,三处措辞逐字呼应。每章末尾的顾问工作记录是另一层伏笔,也是我自己比较得意的设计,这里多说两句。全书二十五条批注,跟在每章的工作记录最后,口吻是早川的工作笔记,记的都是数据、日期、经手人这类杂事。这些句子表面上逐字都是真的,他没有在里面撒过一句谎,但每一条底下还垫着一层意思。读完全书再回头翻,那些最平淡的句子会挨个变样。写这批批注只有一条规矩:字面全真,第二层意思不能靠玩文字,只能靠读者换一双眼睛重读。
还有一条只给二刷读者的暗线:讲座开场前的两声轻咳,咖啡店里的呛咳,饭桌上的剧咳,和一句"明年的事,到时候再说"。第一遍读,每一次都有解释,每一次的解释都够用。
四、人物
松枝的盲区不是傲慢,是信任。他反复说假说可以被推翻,这话他是认真的,他漏掉的是另一句:数据是谁整理的。一个习惯先给每件材料起名字再找答案的人,最后输在他最信任的那份材料上。
早川是做量化的,一个整天和数据打交道的人,作案也用和数据打交道的方式:编辑一个数字。前两案他不沾手,设计是他的,教具是他的,门径是他开的,动的是三浦的手。第三案起他亲手,因为他要亲眼看着松枝的理论立起来,再看着它塌下去。他的动机我不愿意写成创伤,给他的是两次破产。学界一次:中村建议他攻 ABC 猜想,方向是错的,人没有恶意——他心里其实恨中村,只是这份恨没有合法的出口。后来在基金又是一次:模型是对的,回测干净,风控合规,然后一次和谁都没关系的资本管制把它打死,他从这件事里学到的最重要的一句话是"市场不一定奖励正确"。两次之后,他恨的不再是哪件事,是松枝这样的人,一辈子正夏普,如漂亮回测曲线一般永远干净。所以他想当这个市场,让顺利的人也感受一下噪声,感受一下史诗级的回撤。他内心早就破烂不堪了,但写出来的只有证据,没有伤口。他的裂缝只有两处:讲起中村的死时那一声冷笑,还有那句"老师的研究室,谁走他都送到门口说一句路上小心,十几年没有漏过——四月十日夜里,没有这句话"。裂缝我只留了这两处。
伊达是全书唯一始终说对话的人,他的功能是"拆不动但不认同",两次认输,都不是被说服。佐藤和三浦是道德配重,两个普通到不会被任何人记住的人,他们身上的细节不服务诡计,只服务人。佐藤的葬礼只到了六个人,遗物里有一张磨圆了边角的警察名片,一次也没有打来过。
五、自白、记录与那份诊断书
早川在自白里要的不是脱罪。五条条件他一条一条摆在桌上:实验记录完整入卷;松枝署名的误判不许撤;译注不许删;佐藤那一节不能写成意外;八月六日那句"没有万一",具名具时进记录。他也不是要展览松枝,他要的是实验的最后一个数据点:被试者亲手签字。
松枝最后签了。签的时候他把佐藤作为人写进了记录——折了四折的领书单,几十块没动的硬币,还有他表姐那句话。这几样东西没有一件是证据,他只是不想让这个人在这份记录里只剩一个编号。
终章那份诊断书是另一层。早川把它交给伊达,不交给松枝,因为伊达那边需要的是一个能归档的动机,一个容易讲的故事。绝症加报复社会,世俗读得懂。这是他的最后一次策展:事实是真的,投放的位置是算过的。松枝知道这份诊断书装不下望月,装不下爆仓的那个三月,也装不下"我要当一次这个市场",但他不替读者断言。运气差这句话,最后落回了早川自己身上。
六、最后
模型交付了。它在训练数据上表现完美。