2026年4月12日,我收到高德纳(Donald Knuth)那封最好的信已二十年:他确认了我在他书中发现的错误,并寄来奖励支票。高德纳为书中错误(含排版错误)发奖励是计算机科学传说,我原以为没可能拿到,因为他的书已被无数人翻遍。后来我以为找到一处错误,核查数月才上报。错误在《Computer Modern Typefaces》,不是《TeXbook》或《The Art of Computer Programmming》,在第1页第一段第一个词上,读过的人会看到,备注E1指它是Volume E第1页。
正文
距离我收到那封有史以来最棒的信,已经过去二十年了。Donald Knuth 确认了我在他一本书里发现的错误,并寄给我那张令人梦寐以求的支票!。
Donald Knuth 和他为书中任何错误(甚至包括排版错误)设立的奖励,早已成为计算机科学界的传说。我居然也能拿到一张,想想都觉得荒唐!他的书被成千上万的人仔细翻找过,那些人比我更聪明,也比我更有耐心。
然后这事就发生了。我以为自己发现了一个错误,但没有立刻上报,而是等了好几个月,反复核查,生怕闹笑话。我甚至告诉了大学里我们当地的那个天才,他却不太在意,还对我的兴奋不以为然。
我找到的错误在一个非常特别的位置。那本书是《Computer Modern Typefaces》,读的人不多(不是《The TeXbook》或《The Art of Computer Programming》),但凡是翻过这本书的人,几乎都会把那个错误看漏。
因为它就在阿拉伯数字第 1 页,第一段,第一个词。

正因如此,备注栏(Memo)里写着“E1”:《Computer Modern Typefaces》是《Computers & Typesetting》系列中的 E 卷,第 1 页。

我把支票稍微打码处理了一下,因为 Knuth 担心有人会拿这些数字干坏事,而且他已经很多年没有开出真实支票了。如今你收到的是一家虚构银行——圣塞里夫银行(Bank of San Serriffe)——开出的虚构证书。
可为什么在圣塞里夫银行的名单上,我的条目是“0x$1.20”,也就是十进制的 2.88 美元?几年后,我又提交了一个自认为的错误,但这次是我弄错了。Knuth 专门写了几段话,解释我到底错在哪;不过因为我在漏洞报告里有一句随口说的话被他当成了一个好建议,他又给了我一张 0.32 美元的支票。
评论
讨论气氛轻松怀旧,多数人把 Knuth 奖励支票视为巧妙的激励设计与难得的荣誉,纷纷分享自己或身边人持有的经历;真正的分歧并不激烈,只有少数人把注意力转向技术纠错或半开玩笑地警惕 AI 刷奖,形成轻微张力。
认为 Knuth 用奖励支票换取读者极致校对是高明且少有人效仿的策略
- 读者为了一张几乎不会去兑现的奖金,会把著作反复精读找错,等于让 Knuth 用小额奖励换来了近乎无懈可击的校对质量;只是奇怪这一做法在领域内几乎没有其他作者跟进。(认可度:较多人) > 有意思的是,这个领域里似乎没有其他作者采用 Knuth 的策略,把书校对到无懈可击。(@jacquesm)
认为拥有奖励支票是难得的荣誉与纪念
- 不少人晒出自己或熟人持有支票的数量,有人为曾经拥有却弄丢而深感遗憾,还有人仍在钻研新卷册、想再发现一处错误以拿到数字账户。(认可度:较多人) > 我人生最大的遗憾之一,就是曾经拥有一张却莫名其妙弄丢了。(@CurtHagenlocher)
认为文章可能会教人用 AI 批量刷奖励支票(半开玩笑)
- 有人原以为文章会讲怎么用模型批量找错来“刷”支票,看到并不是才松了口气;也有人惊讶居然还没人真用 AI 去刷出史上最大的收藏。(认可度:少数人) > 我还以为文章会讲怎么用 Claude 批量刷这些支票,谢天谢地并不是。(@nice_byte)
有价值的补充
- 原文图片无法显示,是因为文章链接末尾缺少斜杠,导致图片的相对路径被解析到错误的地址并返回 404;在链接末尾补上斜杠,或通过 Wayback 存档访问,就能正常加载。(@blatherard、@deathanatos)
- 所谓错误里“可生成无限多种字母表”的说法并不严谨:参数有限且取值范围有限,只能生成极大数量,而非无限;若写成“极大量”才严谨。(@ape4)
- 帖子里把 0x$1.20 直接注成十进制 2.88 美元,但有读者提醒:若按普通十六进制小数理解,0x1.20 其实只是 1.125;帖主用的是 Knuth 在 BOSS 页面底部自定的记法,不能直接按字面换算。(@deathanatos)