John von Neumann · 1903–1957

冯·诺依曼

指令和数字住在同一块存储器里——今天每一颗处理器仍是这个样子;而写下这件事的那份报告只署了他一个人的名字,这桩公案吵了八十年

MaxξMinηh(ξ,η)=MinηMaxξh(ξ,η)\operatorname*{Max}_{\xi}\operatorname*{Min}_{\eta} h(\xi,\eta) = \operatorname*{Min}_{\eta}\operatorname*{Max}_{\xi} h(\xi,\eta)
极小极大定理 · 1928 年《论社交博弈的理论》,《数学年刊》第 100 卷。「我先亮牌你再选」与「你先亮牌我再选」,值居然一样——前提是允许掷骰子。他自己在脚注里管它叫「我们那条比较深的关于双线性型的定理」

约翰·冯·诺依曼 1903 年 12 月 28 日生于布达佩斯,家里是犹太银行世家。父亲马克斯·诺依曼 1913 年因对匈牙利经济的贡献获世袭贵族头衔,「冯」这个字是从那里来的,他后来用的是它的德文写法。1911 年进路德会中学;布达佩斯大学的助教费克特替他补课,两人 1922 年合写了他见于印刷的头一篇论文。关于他的神童故事在二手文献里多得离谱,绝大多数查不到一手出处,这里一律不收;可以确证的是纸面上的东西——1923 年,他不满二十岁,在塞格德的刊物上发表《论超限数的引入》,把康托尔的序数重新定义成了集合本身。此后他同时念两处:1926 年在苏黎世的高等工业学院拿到化学工程文凭,同一年在布达佩斯大学拿到数学博士学位,论文做的是集合论的公理化。1926 至 1927 年带着洛克菲勒奖学金在哥廷根跟希尔伯特;1927 年起在柏林任教,1929 年转汉堡。1928 年那篇博弈论就署着「J. v. 诺依曼,于柏林」。1930 年应邀去普林斯顿,1931 年受聘教授,1933 年高等研究院成立,他是最初的六位教授之一——另外五位是亚历山大、爱因斯坦、莫尔斯、维布伦与外尔。那年他二十九岁。

1943 年 9 月他到洛斯阿拉莫斯,此后的事很难只用「数学家」概括。他最要紧的贡献是内爆弹的爆轰透镜:把快烧与慢烧两种炸药拼成一个「透镜」,让炸出去的冲击波变成向内的球面——这个想法出自塔克,是他算出了做得到;今天一般把塔克、内德迈耶与他三人并列。1945 年 4 月他进了挑选投弹城市的目标委员会。同一年 6 月 30 日,那份《EDVAC 报告初稿》写成。战后他一头造机器、一头替军方与政府做顾问:1944 年与摩根斯坦合著《博弈论与经济行为》,把 1928 年那条定理推到了经济学;1946 年起在高等研究院主持造自己的计算机;1950 年与查尼、夫约托夫特在 ENIAC 上做出了第一批数值天气预报;晚年那部没写完的《自复制自动机理论》问的是「机器能不能造出自己」。他的政治立场是鹰派,而且从不掩饰,1955 年由艾森豪威尔任命为原子能委员会委员。也是 1955 年他查出癌症;1956 年起坐轮椅,仍旧带着委员会的工作到病房。1957 年 2 月 8 日卒于华盛顿的沃尔特·里德陆军医院,五十三岁。

冯·诺依曼肖像
洛斯阿拉莫斯实验室摄,约1944 · 洛斯阿拉莫斯国家实验室藏 · Wikimedia Commons,公有领域。这是他在洛斯阿拉莫斯的工作证件照,胸前横着的号牌上印着 M 50。选它是因为约 1944 年正是他两头跑的那几年——一头是爆轰的计算,一头是为了算它而造的机器;本页的蒙特卡洛与存储程序两件,都是从这几年的同一件事里长出来的

生平

  1. 1903年12月28日
    生于布达佩斯

    银行世家。父亲 1913 年获世袭贵族头衔,「冯」字由此而来。

  2. 1922
    头一篇论文

    与布达佩斯大学的助教费克特合写,论某类极小多项式零点的位置。那年他十八岁。

  3. 1923
    《论超限数的引入》

    塞格德《数理科学集刊》第 1 卷 199–208 页,署「约翰·冯·诺依曼,于布达佩斯」。把康托尔的序数定义成集合本身。

  4. 1926
    两个学位,同一年

    苏黎世高等工业学院的化学工程文凭,布达佩斯大学的数学博士学位(论文做集合论的公理化)。

  5. 1926–1927
    哥廷根,跟希尔伯特

    洛克菲勒奖学金。量子力学的希尔伯特空间表述就是在这几年成形的。

  6. 1926年12月7日
    哥廷根数学会:博弈论第一次讲出来

    1928 年那篇的脚注 1 写明,内容(有删节)这一天已经讲过——比发表早一年多,他二十三岁。

  7. 1928
    《论社交博弈的理论》

    《数学年刊》第 100 卷 295–320 页。极小极大定理;脚注 8 里,1、2、3 就叫「纸」「石头」「剪刀」。

  8. 1930年9月7日
    柯尼斯堡:当场听懂的那一个

    哥德尔在圆桌讨论上说出不完备定理,全场无人接话;散会后他追上去细问,几周后写信说自己独立推出了第二定理——哥德尔回信说那已在手稿里。

  9. 1932
    《量子力学的数学基础》

    把矩阵力学与波动力学放进同一个希尔伯特空间的框架,证明两者等价;密度矩阵也出自这里。同一本书里还有那个「不可能有隐变量」的证明。

  10. 1933
    高等研究院最初的六位教授之一

    另五位是亚历山大、爱因斯坦、莫尔斯、维布伦与外尔。那年他二十九岁。

  11. 1943年9月
    到洛斯阿拉莫斯

    内爆弹的爆轰透镜:把快慢两种炸药拼成透镜,让冲击波向内成球面。想法出自塔克,他算出了做得到。

  12. 1945年6月30日
    《EDVAC 报告初稿》

    摩尔电气工程学院,美国陆军军械部合同 W-670-ORD-4926。署名只有他一个人。手稿本身已佚,存世的是打字稿。

  13. 1944
    《博弈论与经济行为》

    与摩根斯坦合著。1928 年脚注 2 里那条通向经济学的线,走了十六年才走完。

  14. 1946–1947
    蒙特卡洛

    构想是乌拉姆 1946 年病中打牌时来的;1947 年 3 月 11 日他写给里奇特迈耶一封手写长信,把它变成机器上跑得动的东西。名字是梅特罗波利斯起的。

  15. 1948年4–5月
    ENIAC 上第一批蒙特卡洛计算

    中子输运。ENIAC 此前刚被改成按存储程序的方式工作。

  16. 1950
    第一批数值天气预报

    与查尼、夫约托夫特,ENIAC 上做了四次 24 小时预报。致谢第一句谢的是克拉拉·丹·冯·诺依曼——他的妻子,教会了他们怎么给 ENIAC 编码。

  17. 1955
    原子能委员会委员

    艾森豪威尔任命。同年查出癌症。

  18. 1957年2月8日
    卒于华盛顿

    沃尔特·里德陆军医院,五十三岁。《自复制自动机理论》没有写完。

  19. 1973年10月19日
    ENIAC 专利被判无效

    霍尼韦尔诉斯佩里·兰德案。判决理由之一:那份报告在申请专利一年多以前就已散发出去,构成在先公开。

展品厅

绝大多数展品都可以亲手把玩——这是本馆的立馆之本;少数以叙述为主的,做成故事展签。

镇馆之宝 · 亲手玩

一条指令也是一个数,所以它改得动

十六个格子,指令和数字混在一起放。同一个字既读得成数,也读得成指令——于是一段程序可以伸手把自己改掉。

word=op×100+addr\text{word} = \text{op} \times 100 + \text{addr}

《EDVAC 报告初稿》写于 1945 年 6 月 30 日,摩尔电气工程学院,美国陆军军械部合同 W-670-ORD-4926,署名只有 John von Neumann 一人。要讲的那一句在 §14.1:「CC 收到的指令来自 M,也就是数值材料存放的同一个地方……因而每个小周期必须带一个标记,指明它是一个标准数还是一条指令。」分寸要拿准:报告里两者是靠标记位区分的,不是「完全不分」;可它们同住一块存储器、用同一套地址取——正因为这样,一条指令既取得出来,也改得动。演示里那段程序没有下标寄存器可用,它把「加 11」这条指令当成数 311 取出来、加 1、写回去,下一轮它就成了「加 12」。这台小机器是本页为讲清这句话造的,不是 EDVAC 的指令集:报告里讲编程与输入输出的那几节根本没有写出来,通篇的前向引用指向一些永远不存在的章节。存储器的规格倒是齐的(§12.7):256 条延迟线,每条 1024 位,合 262,144 位,也就是 8192 个 32 位字——换成今天的说法是 32 KiB。§12.4 有一句后来被反复引用的话:「它以最触目的方式表明,一台自动高速计算装置真正的困难、主要的瓶颈在哪里:在存储器。」要说清的是,他这里的 bottleneck 说的是「容量」不够;今天讲的「冯·诺依曼瓶颈」指处理器与存储器之间的带宽,那个说法出自巴克斯 1977 年的图灵奖演说,不是这份报告。最后是那桩公案:这份报告由戈德斯坦散发出去,署名只有他一个,而莫奇利与埃克特的贡献被这件事盖住了。1947 年 4 月 8 日两人从专利律师那里得知,这份报告已经构成在先公开,会挡住他们的 ENIAC 专利;他们还是在 6 月 26 日提了申请。1973 年 10 月 19 日霍尼韦尔诉斯佩里·兰德案判该专利无效,理由里就有这一条。手稿本身已经找不到了——校订这份文本的戈弗雷在引言里写着:寻找手稿的努力失败了。

一段会改写自己的程序:单步走,看 1 号格那条指令从「加 11」一路变成「加 15」,四个数就这么加完了

十六个格子,指令和数字混在一起放。同一个字,左边一列读成数,右边一列读成指令——哪一种读法都合法,因为它们本来就住在同一块存储器里。 这段程序要把 11 到 14 号格里的四个数加起来,可它没有下标寄存器可用。它的办法是把 1 号格里那条「加 11」当成一个数取出来、加上 1、再写回去: 于是下一轮它就成了「加 12」,再下一轮「加 13」。 现在它还是出厂时的「加 11」,往后拨一拨就看见它自己变了。 《EDVAC 报告初稿》§14.1 说的正是这件事:指令来自 M,也就是数值存放的同一个地方。 报告里两者靠一个标记位区分,但它们同住一块存储器、用同一套地址——一条指令因此既取得出来,也改得动。今天每一颗处理器仍是这个样子。

谁也别想看穿谁——连他自己也说不准

纯策略下,先亮牌的那个吃亏,两头对不上。允许掷骰子之后,两头合在同一个数上:这就是博弈论的第一条定理。

h(ξ,η)=p=1Σ1q=1Σ2g(p,q)ξpηqh(\xi,\eta) = \sum_{p=1}^{\Sigma_1}\sum_{q=1}^{\Sigma_2} g(p,q)\,\xi_p\,\eta_q

1928 年《数学年刊》第 100 卷那篇《论社交博弈的理论》,署「J. v. 诺依曼,于柏林」。他先把「一局游戏」写成了定义:哪些环节听天由命(他叫「抽签」),哪些由某位玩家决定(他叫「着」),每一着是谁走的、他在决定的那一刻知道此前哪些环节的结果——连带一条要求,这些「先后」关系里不许有圈。今天所谓扩展式博弈与信息集,起点就在这一页。然后是两人零和的情形。行家想把收益弄大,列家想弄小;「我先亮牌」能保住的那个数,一般严格小于「你先亮牌」能压到的那个数,差的那一截,他说得很准:「这两个数不同,恰恰意味着两个玩家不可能同时都是更聪明的那一个。」第三节他用了一个「手法」把它们逼成相等:不要求玩家一上来就挑定某一手,只让他给出一组概率,再照这组概率从瓮里抽。他写道,这看上去是在削他的自由,其实不是;反过来「他因此护住了自己不被看穿:因为若两手各一半,那么谁也预言不了——连他自己也不能!——他会选 1 还是 2」。要紧的两件事都在页边上。其一,他自己举的两个例子里,第二个就叫「Morra」,而脚注 8 写明:在通行的说法里,1、2、3 就叫「纸」「石头」「剪刀」——石头剪刀布是他配的例子,不是后人配的。其二是首创权,由他自己的脚注 9 定死:「本文定稿期间,我才知道波莱尔先生 1927 年 1 月 10 日《报告》上的那篇札记……波莱尔就一个对称的二人博弈提出了关于双线性型的这个问题,并指出尚无 Max Min 小于 Min Max 的例子。我们上面的结果回答了他的问题。」问题是波莱尔提的,定理是他证的,两人后来为此争过。还有一件事在脚注 2 里:「这是古典国民经济学的主要问题:在给定的外部环境下,绝对利己的『经济人』会做什么?」——通向经济学那条线,1928 年就写在第二条脚注里,而《博弈论与经济行为》要到 1944 年才与摩根斯坦一起写完。顺带说一处原刊的手民之误:第 303 页 Morra 矩阵第三行中间那一项印作 g(3,3),应作 g(3,2)——他自己在第 306 页写明这个矩阵反对称,由此那一格必是 −1,按脚注 8 的读法也是「剪刀对石头」输一注,两条互相独立的依据都指向同一个数。

石头剪刀布是他自己举的例子——1928 年那篇的脚注 8 写得明明白白:1、2、3 在通行说法里就叫「纸」「石头」「剪刀」。纯策略下这局没法谈:先亮牌的那个最多保住 −1,后亮牌的能压到 1,两头合不上,差的那一截就是「谁看穿谁」。 他的办法是允许掷骰子。 他写道:若两手各一半,那么谁也预言不了——连他自己也不能——他会出哪一手。这样一来两头就合上了,合在博弈值 M 上。 右边的三角形是他所有的混合策略,颜色越深表示最坏情况下保得越多; 金点是最优的那一点,虚线圈是「三手各三分之一」。 现在这一档金点正落在虚线圈里,与原刊印的 ξ₁ = ξ₂ = ξ₃ = 1/3 一致。 首创权的分寸由他自己定死:p.306 脚注 9 说,波莱尔 1927 年 1 月 10 日提出过这个问题、 并指出没有见过反例,「我们上面的结果回答了他的问题」。

他要的不是真随机,是查得了账的假随机

平方,取中间四位,再平方。一万个可能的数,最好的种子也只走得出一百一十一个——而第一个说这件事有多危险的,是他自己。

xn+1=xn2100mod104x_{n+1} = \left\lfloor \frac{x_n^{2}}{100} \right\rfloor \bmod 10^{4}

1949 年那场蒙特卡洛方法的会议上,他讲了一次怎么造随机数字。讲稿两年后印在美国标准局《应用数学丛刊》第 12 号 36–38 页,标题下印着一行要紧的话:「摘要由乔治·福赛思写成」——通篇用第一人称,可落到纸上的字是福赛思的,所以那句名言严格说来是经他人之手记下来的。开头他先排除了一条路:用物理装置现造随机数看着最干净,可一旦要查账就完了,「凡是像样的复核都要把先前做过的事重做一遍,而在那个节骨眼上引进新的随机数是无法容忍的」。他要的是能重跑的。接着是那句被引了七十多年的话:「任何考虑用算术方法制造随机数字的人,当然都处在犯罪状态。因为,正如已被多次指出的,根本没有随机数这种东西——只有制造随机数的方法。」他自己给的方法就是中方取中:四位数平方成八位,取中间四位。这东西坏在哪里,也是他自己点的名——「末尾自我繁殖的零」,以及他更怕的那一样,「没被发现的短环」。把四位十进制的一万个种子全扫一遍,他说的每一句都兑现了:整个状态空间只有八个归宿,五个不动点 0、100、2500、3792、7600,三个长度为 4 的环,再没有别的环长;9913 个种子(99.1%)落进那六个「整串都以 00 结尾」的归宿里;走到开始重复为止平均只有 43.7 个数,最长的种子 6239 也只有 111 个。一万个可能的值,你最多摸到其中一百一十一个。归属要分清三件事:蒙特卡洛的构想是乌拉姆 1946 年病中打牌时想到的——他想算一副牌摊开能不能走通,发现与其硬算组合,不如多打几局数一数;冯·诺依曼看出了这件事的分量,1947 年 3 月 11 日写给里奇特迈耶一封手写长信,把它变成中子扩散问题在机器上跑得动的办法;「蒙特卡洛」这个名字是梅特罗波利斯起的,因为乌拉姆有个叔叔老跟亲戚借钱,理由是「非去蒙特卡洛不可」。ENIAC 上第一批真正的蒙特卡洛计算跑在 1948 年 4 至 5 月。中方取中法是他自己的。而他给整件事的结论毫不留情:这些数「测起来比造起来还麻烦」,所以造的方子复不复杂并不要紧,要紧的是测得快。

规矩只有一条:把四位数平方成八位,取中间四位,当作下一个数。它不是随机的,是一串算得出来、跑第二遍还一模一样的数——他要的正是这个,因为查账的时候得能重跑。 右边用的是同一篇文章里他自己给的舍选法:在正方形里取点,落进四分之一圆就收下, 收下的比例乘 4 就是 π。麻烦在左边:这串数走着走着就开始打转。 这个种子走 111 个数就开始重复(尾 107 + 环 4);现在已经进环,π 的估计值不再往真值靠,而是锁死在一个错数上。 一万个四位种子全扫一遍:归宿只有八个,99.1% 落进「整串都以 00 结尾」的那几个—— 这正是他自己点名的毛病,「末尾自我繁殖的零」;而他更怕的是另一样, 「没被发现的短环」。他给这件事下的结论也很干脆:这些数「测起来比造起来还麻烦」, 所以造的方子复不复杂并不要紧,要紧的是测得快。

算二十四小时的天气,花了将近二十四小时

同一个差分格式,时间步长大一点就炸得没边。炸不炸是可以事先算出来的——代进一个纯波,看它一步放大多少。

G(θ)=iasinθ±1a2sin2θ,a=cΔtΔsG(\theta) = -ia\sin\theta \pm \sqrt{1 - a^{2}\sin^{2}\theta}, \quad a = \frac{c\,\Delta t}{\Delta s}

1950 年 Tellus 第 2 卷 237–254 页,查尼、夫约托夫特与冯·诺依曼。他们在 ENIAC 上做了四次 24 小时预报,用的是 1949 年 1 月 5 日、1 月 30 日、1 月 31 日与 2 月 13 日 0300 GMT 的 500 毫巴图。那句传说中的话就印在第 275 页,一字不差:「算一次 24 小时预报的时间大约是 24 小时,也就是说,我们刚好跟得上天气。」——而紧接着的半句几乎从没人一起引:「不过这些时间里有很多花在人工与 IBM 机的操作上,也就是穿孔卡片的读、印、复制、分类与插排。」四次预报共打了约十万张卡、做了一百万次乘除,若把预备试验算上这两个数都要翻倍;他们估计,操作理顺之后同样一次预报「用十二小时就够」。真正值得看的是他们为什么退了一步。完整的原始方程里有跑 300 米每秒的重力波,稳定条件要求空间差与时间差之比超过这个速度,于是时间步长被压到十五分钟上下,一次 24 小时预报要推将近一百步(复算:24 小时除以 15 分钟正是 96 步)——「对作者手上那台机器是一个吓人的数目」。于是整篇论文改用了准地转无辐散涡度方程。第 274 页是这套分析本身:把放大因子写成一个模为 ϱ、幅角为 Θ 的复数,稳定就要求这个模不超过 1,算下来条件是 |a| = |sin Θ| ≤ 1。他们实际取的是空间步长 736 公里(45 度纬线上 8 个经度)、网格 15 × 18,时间步长起初 1 小时、后来加到 2 小时再到 3 小时,发现结果几乎一样也没有失稳——而他们自己老老实实写着,这些取值「最终是靠算出来没炸才站住的」。首创权这里要分开写:用傅里叶模判差分格式稳不稳这套办法一般归他,他在洛斯阿拉莫斯就在用,「但他本人从没单独发表过」,公开发表是 1950 年奥布莱恩、海曼与卡普兰那一篇。还有一处值得记:论文致谢的第一句谢的是「K. 冯·诺依曼夫人,她教了我们给 ENIAC 编码的技术,并复核了最后的代码」——克拉拉·丹·冯·诺依曼,最早的一批程序员之一。

他的办法只有一步:往差分格式里代进一个波数为 θ 的纯波, 看它每走一步被乘上多大的一个数。那个数叫放大因子 G。只要有哪一个波的 |G| 大于 1, 这个格式就废了——那个波会指数地涨上来,把真正的解吃掉。 左下画的就是 |G(θ)|:a ≤ 1 时它是一条恰好贴着 1 的直线(既不放大也不衰减), 越过去就在 θ = π/2 附近鼓起一个包,那一支是四格一个波长的锯齿。 现在 a = 0.7337:推十天下来幅值还是 0.990 1950 年那四次预报取 Δs = 736 km、Δt 最后加到 3 小时,落在 a = 0.734,安全。 真正被这一关挡住的是完整的原始方程:那里有 300 m/s 的重力波, 逼得时间步长降到十五分钟上下,24 小时要推九十多步—— 对他们手上那台机器是「一个吓人的数目」,于是整篇论文改用了另一套方程。 要补一句分寸:这套用傅里叶模判稳定性的办法一般归他,可他本人从没单独发表过,公开发表是 1950 年 奥布莱恩、海曼与卡普兰那一篇。

第几个,就是它前面那些凑成的那一堆

0 是空集,1 是「装着空集的盒子」,2 是「装着 0 和 1 的盒子」。这么一来,一个数有几个元素,它就是第几个。

0=,n+1=n{n},ω={0,1,2,}0 = \varnothing, \qquad n+1 = n \cup \{n\}, \qquad \omega = \{0,1,2,\dots\}

1923 年,塞格德的《数理科学集刊》第 1 卷 199–208 页,署「约翰·冯·诺依曼,于布达佩斯」。他那时还不满二十岁。开篇第一句写明了要干什么:「本文的目标是:把康托尔的序数概念无歧义地、具体地抓住。」接着是他不满意的地方——康托尔那套办法是从若干类集合里「抽象」出一条共同的性质,「这个有点含糊的做法,我们要用另一个、建立在无歧义的集合运算上的做法替掉」。替法只有一句话。本来该说「每个序数是比它小的那些序数所成集合的型」,可「型」这个词同样含糊,于是他把它改写成这一形:「每一个序数,就是比它小的那些序数所成的集合。」原刊上紧跟着就印出了前几个的写法(他用的是圆括号,空集记作 O):0 是空集,1 = (0),2 = (0,(0)),3 = (0,(0),(0,(0))),再往下是 ω 与 ω+1。他特意声明这不是一条已经证明的定理:倘若超限归纳已经立住,它倒可以拿来当定义;而他并不预设超限归纳,只把「良序集」与「相似」两个概念当现成的。这个定义划算在哪里?序数 n 恰好有 n 个元素,「第几个」这件事不必再另外解释,它自己就是自己的计数;两个序数谁大谁小,就看谁是谁的元素。代价是写出来会爆炸:花括号写法的字符数是 5 乘 2 的 n−1 次方减 1,10 已经要 2559 个字符,30 要二十六亿八千多万个——每往上一档就翻一倍。他在同一篇里还写明,加上弗兰克尔那条公理之后,这些推理在策梅洛的公理系统里照样成立;今天的 ZF 集合论里,序数的标准定义就是这一条。要与馆里两页分开说:康托尔那一页问的是「有多少」,戴德金那一页讲的是分割与自然数的公理化,这一件只讲「第几个怎么定义成集合本身」。

康托尔说序数是从一堆集合里「抽象」出来的一条共同性质。十九岁的他嫌这句话含糊, 换了一个做法:干脆让每一个序数就是比它小的那些序数凑成的那个集合。 于是 0 是空集,1 是「装着空集的盒子」,2 是「装着 0 和 1 的盒子」,一路造上去。 这么一来「第几个」不再需要另外解释——序数 n 恰好有 n 个元素,它自己就是自己的计数。 代价是写出来会爆炸:3 要 19 个字符, 而闭式是 5·2\u207f\u207b\u00b9 − 1,每往上一档就翻一倍:10 已经要 2,559 个字符,30 要 2,684,354,559 个。 所以画布上只画到 5,再往上只印数字。 按「跳到 ω」看最要紧的那一步:把前面所有的并起来, 得到第一个装着无穷多个盒子的盒子——而它不是任何一个序数的后继。 这套定义今天是 ZF 集合论里序数的标准定义;他自己在同一篇里就写明, 加上弗兰克尔那条公理之后,这些推理在策梅洛的系统里照样成立。

一个摆了三十年的证明,第四章没有人真的读过

1932 年他把量子力学放进了希尔伯特空间,顺手证明了「不可能有隐变量」。三年后有人指出那个证明有一条假设不成立——没有人理会。

1932 年的《量子力学的数学基础》做成了一件大事:海森堡的矩阵力学与薛定谔的波动力学,本来是两套看上去毫不相干的说法,他把它们放进同一个希尔伯特空间的框架里,证明两者等价。态是空间里的向量,可观测量是自伴算子,测量的期望值是一条迹公式;密度矩阵也出自这本书。馆里希尔伯特那一页的传承链上早就写着「希尔伯特空间 → 冯·诺依曼的量子力学公理化 → 信号处理与机器学习」,这一页正是那笔账。同一本书的第四章第二节里(他自己在第三章就预告过这一步),他还给了一个证明:量子力学的统计预言不可能由任何「隐变量」理论复现出来。这个结论被当成定论三十多年,好几代研究生因此打消了往那个方向走的念头。可它有一条假设站不住:他要求期望值是可加的,也就是 E(A+B) = E(A) + E(B),而且对每一个态都成立——包括那些假想的、没有弥散的态。量子力学只要求这条在系综的平均上成立,它对不对易的可观测量在每一个个体上并不成立。1935 年,格雷特·赫尔曼在《弗里斯学派论丛》第 6 卷 75–152 页的一篇长文里把这一点指了出来,说得相当清楚。然后什么也没有发生——文章登在一份哲学刊物上,物理学界几乎无人理会,大家继续引那个证明。三十多年后贝尔重新发现了同一处。这里的年份要说准:他那篇《论量子力学中的隐变量问题》写在那篇著名的 EPR 论文之前,却在《现代物理评论》编辑部的抽屉里躺了一年多,1966 年才印出来,反而比 1964 年那篇晚。贝尔自己后来说得很不客气:那个证明「一碰就散了……不只是错,是蠢」。赫尔曼要到 1974 年才因为雅默的一本书重新被人提起。不过这件事今天还没有完全了结:2010 年以来布卜与迪克斯等人反过来主张,是贝尔与赫尔曼误读了冯·诺依曼想说的东西,争论仍在。所以这一条故事的落点不在「他错了」,而在别处:一个证明摆在那里,被引了三十年,而指出它那条假设的人 1935 年就写了出来——只是没有人去翻第四章第二节。

故事展签故事展签:他把两套量子力学合成了一套,也在同一本书里留下了一个被信了三十年的证明;指出毛病的那篇 1935 年就登了出来,登在一份没有物理学家读的刊物上。

传承

他的工作没有留在十八世纪——每条链的终点,都是你今天正在使用的东西。

1945 年《EDVAC 报告初稿》:把机器分成运算、控制、存储、输入、输出五部分,并让指令与数值用同一种方式存放指令既然是数,程序就能被读、被改、被另一段程序生成——汇编器、编译器与操作系统都从这一条长出来今天每一颗通用处理器仍是这个样子:存储程序的体系结构是全部数字计算机与算法的地基
1947 年那封给里奇特迈耶的信:中子扩散不必解方程,跟着一个个粒子随机走就行中方取中法提供可复现的伪随机数,ENIAC 1948 年跑出第一批结果今天从金融的风险定价、药物试验的统计推断到渲染引擎的光线追踪,都是同一套办法;马尔可夫链蒙特卡洛是贝叶斯统计的主力
1928 年极小极大定理:两人零和博弈里,允许掷骰子之后「先亮牌」与「后亮牌」的值相等1944 年与摩根斯坦把它推到经济学,纳什 1950 年推广到非零和的多人情形今天的拍卖设计、期权与风险对冲、网络路由的博弈分析,以及机器学习里生成对抗网络的那个「极小极大」,用的都是这条定理
把一个纯波代进差分格式,看放大因子的模超不超过 1——差分格式稳不稳有了可算的判据1950 年与查尼、夫约托夫特在 ENIAC 上做出第一批数值天气预报,四次 24 小时预报今天全世界的天气预报、气候模式与一切计算流体力学的数值模拟,每一个格式上线前都要过这一关
1932 年《量子力学的数学基础》:态是希尔伯特空间里的向量,可观测量是自伴算子,两套量子力学由此合成一套为处理无穷多自由度,他与默里建立算子代数(今天叫冯·诺依曼代数),并与伯克霍夫提出量子逻辑今天的量子信息与量子计算就建在这套语言上,密度矩阵仍是描述量子态最基本的工具
1923 年把序数定义成「比它小的那些序数所成的集合」,替掉了康托尔那个靠抽象得来的说法这个定义进了 ZF 集合论,成为超限归纳与递归定义的标准地基今天证明助手里的序数记号用它来证明程序会停机,类型论与形式化数学的基础库第一条写的也是它

他在哪几条专题里

专题是按技术组织的演进线,一条从概念提出拉到今天的器物。这里一个字都没手写, 全是 tracks.ts 推出来的。

语录

任何考虑用算术方法制造随机数字的人,当然都处在犯罪状态。因为,正如已被多次指出的,根本没有随机数这种东西——只有制造随机数的方法。

—— 《与随机数字有关的若干技术》,美国标准局《应用数学丛刊》第 12 号,1951,第 36 页。标题下印着「摘要由乔治·福赛思写成」,所以这是经他人之手记下来的讲稿

他因此护住了自己不被看穿:因为若两手各一半,那么谁也预言不了——连他自己也不能!——他会选 1 还是 2。

—— 《论社交博弈的理论》第三节,《数学年刊》第 100 卷第 304 页,1928。大意

碰运气这件事在游戏的本性里扎得太深(如果不是在世界的本性里的话),根本不必靠规则把它硬塞进来:哪怕正式的规则里一点影子也没有,它也会自己破土而出。

—— 《论社交博弈的理论》第 306 页,1928。他刚证完两人零和的情形,回头说这段话。大意

它以最触目的方式表明,一台自动高速计算装置真正的困难、主要的瓶颈在哪里:在存储器。

—— 《EDVAC 报告初稿》§12.4,1945。这里说的是容量不够;今天所谓「冯·诺依曼瓶颈」指处理器与存储器之间的带宽,那个说法出自巴克斯 1977 年的图灵奖演说