AI-NATIVE 系列 · 数学的两极 · 第一季唯一一集 · 20岁
离散与连续:数学的两极,以及它们如何彼此转化(20岁版)
要点速览
内容简介 这是一篇面向20岁左右读者的数学随笔,讲述数学的两极:离散(能数的、分明的)与连续(能量的、无缝的)。文中梳理了两者如何在四种典型情境下互相借力,每种转向的触发条件、技术手段和背后动机。
为什么值得关注 现代工程几乎都处在这两极的某个“转向”上:你的音频是连续波形被采样存储,机器学习用连续梯度训练离散选择,最后再把权重四舍五入成整数,而素数分布的第一个证明也来自曲线。搞清楚你正处在哪种转向上,就能预判可能的风险和误区。
读完之后你可以做什么动手体验三个在线演示(两个滑块、一个实时表格),验证 1 + 1/2 + … + 1/n 与 ln n + 0.5772 的差距大约是 1/(2n);说出你常用工具背后的“转向”;最后,把“阶梯变滑梯”的思路讲给一个 15 岁的孩子听。
核心问题:离散数学和连续数学到底有什么不同?它们又是在什么情况下、如何、为何会互相借力?
本文不会重新讲数字怎么写——那是Number vs Representation(20 岁篇)的内容。这里只谈整数和实数轴,复分析只作为桥梁点名,不展开。
本文讲什么:离散数学 vs 连续数学
这是一篇聚焦离散与连续数学——数学的两端的文章。离散数学关注那些能一件件数清楚的对象:整数、图、字符串、步数。连续数学处理的是没有间隙、可度量的量:长度、时间、温度、实数轴。写给二十岁左右、会编程、学数学或做机器学习的你。只需一台能跑 Python 的电脑,花二十分钟做做练习即可。
问题不只是两端有何不同,更关键的是:它们何时、如何、为何会互相借力。数学总在两端之间来回切换,而现代工程几乎都依赖于这些“转向”。文中梳理了四种典型转向,每种都给出触发条件、技术手段和背后动机。动机分三类:真理(为了证明)、爱(为了服务)、美(为了把无数情况归为一类)。
这也是一次方法论测试。本文采用了playbook-math,这是为Numbers at Four Ages系列开发的方法,来验证它能否迁移到新主题。底层支撑是Two Ends Playground,一个免费页面,内含三组“数学两端互转”的在线演示。
全文贯穿一张图,视角来自厨房梯子的顶端:全国食品供应链。鸡蛋是离散的,只能数,没人会发半个蛋;面粉是连续的,称重,多少克都行。全国连锁每天早上都要同时规划这两种物资,四种“转向”在它的计划办公室里全都能找到。
正式进入正文前,先提醒一句:你最后要把“阶梯变滑梯”的思路,用 playground 教给一个 15 岁的孩子。请带着“我要讲明白”的心态来读。某项元分析发现,39项研究中,带着“要教别人”预期去学习再讲解,得分提升 g = 0.48(这是一个子组结果),而如果没有“准备去教别人”这个预期,教学并没有带来可测的提升(g =−0.02) (Kobayashi(2024),Educational Psychology Review(ERIC EJ1414484)).
活动1 · 数一数滑步(先动手,再往下看)
横穿房间三次。第一次大步跳着走,数一数跳了几下;第二次用脚跟贴脚尖的小碎步,也数一数;第三次,双脚不离地一路滑过去。
你滑了几步?这个问题没有答案,只有距离。现在请你想一个只靠“数数”就能测量滑步长度的方法,不能用带现成刻度的尺子。写下你的方法,再继续阅读。
大多数人都会想到类似的办法:把步子越迈越小,数步数,再乘以步长。步子越小,步数乘步长就越接近滑步的总长度。这就是离散和连续之间最早、最经典的转变:把离散的计数推到极小的步长,最终变成了连续的测量。芝诺(Zeno)曾认为这种无穷分割让运动变得不可能。按他的逻辑,没人能走到冰箱前。数学花了两千年才把这一步严密化。
两端,以及它们之间的界线
这个分野由来已久。亚里士多德在论述“量”时就开宗明义地点出了这一区分:「量要么是离散的,要么是连续的。(中译:Quantity is either discrete or continuous.)" (亚里士多德,《范畴篇》第六部分,E. M. Edghill 译」。他区分两者的标准非常明确:离散量的各部分之间没有公共边界。比如他说:「两个五合成十,但这两个五之间没有公共边界,是分开的。(中译:two fives make ten, but the two fives have no common boundary, but are separate)」。而一条线则恰恰相反,是由彼此相接的部分组成。
先要明确一个词的含义。本文所说的“离散”,指的是由分开的、可数的单元组成,比如整数。分数虽然也是可数的,甚至在数轴上挤得密密麻麻,但任意两个分数之间总还有别的分数。“连续”则指的是没有任何间隙的线。
在大部分历史中,连续这一侧一直更神秘。芝诺的运动悖论(二分法、阿基里斯与乌龟、飞矢、体育场, Huggett,斯坦福哲学百科,Zeno's Paradoxes)就是在质疑一条线是否可以被无限分割。分数似乎能填满整条线,因为任意两个之间总有另一个分数,但它们还是留有空洞。Dedekind 称有理数为「有间隙、不完整、不连续的(中译:a gappiness, incompleteness, discontinuity)" (Bell,斯坦福哲学百科,Continuity and Infinitesimals(引自 Dedekind 1872)」。1872他用可数的分数来填补这些空洞:把每个实数定义为把分数分成左堆和右堆的方式(MacTutor,Richard Dedekind)。连续统就是这样用可数的碎片拼出来的。
后来,Cantor 证明了离散和连续这两端,连“多少”都不是一个量级。在 1874 他证明了实数无法像整数和有理数那样被逐一列举出来(MacTutor, Georg Cantor)。他更著名的对角线论证紧接着出现,见 1891 (Wikipedia, Cantor's diagonal argument)。所以数轴上的点,比你能写下的名字还要多得多。并不是所有人都接受这种构造:Weyl 的 Das Kontinuum (1918)试图跳过这种方法,重新搭建分析的基础(Stanford Encyclopedia of Philosophy, Hermann Weyl).
两端各有一套工具。离散数学用 Σ 求和、Δ 求差、归纳法证明、精确计数。连续数学用 ∫ 积分、d/dx 求导,通过逼近和极限来论证。其实这两套工具比大多数课程承认的还要像镜像:“The finite difference is the discrete analog of the derivative.(中译:有限差分是导数的离散对应物。)" (Weisstein, MathWorld, Finite Difference”。Σ 恰好抵消 Δ,正如 ∫ 可以抵消 d/dx。Graham、Knuth 和 Patashnik 还专门为这种镜像写了一本书,并以此命名:“Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics.(中译:《具体数学》就是连续与离散数学的融合。)" (Graham, Knuth & Patashnik, Concrete Mathematics, publisher description (InformIT)).
活动2 · 画阶梯
在纸上画出 y = x² 这条曲线,区间从 x = 0 到 x = 1。在曲线下方,画四个宽度为 1/4 的矩形,每个矩形的高度取该区间右端的曲线值。
把这些矩形的面积加起来。然后打开 Two Ends Playground 的第1部分,把矩形数量从 4 拖到 100。看着阶梯逐渐变成滑梯,误差也越来越小。
四个矩形的面积是 0.46875;真实的面积是 1/3。用 100 个矩形时,和为 0.33835,误差大约是 0.005,这几乎正好是 1/(2n)(实测,playground 里可以实时看到)。矩形数量翻倍,误差就减半。这正是 Riemann 在 1854 (MacTutor, Bernhard Riemann),直到很久以后,Riemann 才把 ∫ 作为求和的极限严格化,出处见 1684 (MacTutor,《微积分的兴起》).
四种转向
数学并不固守在离散或连续的某一端,而是在两者之间不断切换。每一次转向都有其触发条件、采用的技术手段,以及背后的动机。图中每一条箭头都指向转向带来结果的地方。极限给出平滑公式(转向1),分析方法证明整数问题(转向2),采样让机器能处理连续量(转向3),松弛法则则是先去连续那端再带回整数解(转向4,是一次往返)。
转向1 · 计数变测量:当步子极多且极小
触发条件: 离散问题被拆成了极大量、极细小的部分。
技术手段: 让每一小块无限变小,取极限,于是求和变成积分,直方图变成曲线。
典型例子:
- Stirling 公式(1730, MacTutor,James Stirling)用一个平滑表达式 √(2πn)(n/e)ⁿ 近似 n!。当 n = 10 时,这个近似值已经只比 10! 低 0.83%(实测)。
- 在 1733 de Moivre 发现,大量抛硬币时正面出现的次数会服从钟形曲线(MacTutor,Abraham de Moivre).
- 在 1837 Poisson 分布出现了,也就是大量稀有事件的极限情形(MacTutor,Simeon Poisson).
Two Ends Playground 的第 2 部分Two Ends Playground 里可以看到硬币的例子。100 次抛硬币,恰好 50 次正面的精确概率是 0.079589,而钟形曲线在那里的高度是 0.079788(实测)。
这一转向的动机主要是美: 一条曲线就能代表上百万个独立情况。在厨房的计划办公室里,已经不再逐个预测每位顾客的订单,而是直接为全国整体拟合一条平滑的需求曲线。
转向二 · 用连续方法破解计数难题
触发条件: 一个关于整数的问题,单靠计数怎么都解不开。
核心方法: 把离散数列“包裹”进一个连续函数里,再用微积分的工具来处理。Wilf 形象地说:“A generating function is a clothesline on which we hang up a sequence of numbers for display.(中译:生成函数就像一根晾衣绳,我们把一串数字挂上去展示。)" (Wilf, generatingfunctionology).
最著名的例子就是素数,它们是数学里最离散的对象。
- 在 1859 Riemann 用 zeta 函数(把它当作一个复数变量)来研究素数(Riemann, On the Number of Primes Less Than a Given Magnitude, tr. D. R. Wilkins).
- 素数定理(小于 x 的素数大约有 x / ln x 个)是在 1896年由 Hadamard 和 de la Vallée Poussin 各自独立证明的,正是用的这种连续工具(Weisstein, MathWorld, Prime Number Theorem).
- Euler 还证明了 1/n² 的和等于 π²/6,一个圆周常数居然出现在整数的和里(见1735, Euler Archive, E41 De summis serierum reciprocarum).
背后的动机是真理: 连续方法先达到了离散世界只能陈述、却长期无法证明的事实。但这并非永远如此:1949 之后,Selberg 和 Erdős 找到了一个完全不用复分析的素数定理证明(MacTutor, Atle Selberg)。最早采用这种转向,但这并不是唯一的路径。
转向 3 · 计数为测量服务:当机器或人必须做出实际操作
触发条件: 现实世界是连续的,但我们只能用有限的设备来应对它:比如计算机、传感器,或者一只手。
技术手段: 对连续对象进行采样、切分,或者把它们四舍五入到有限的数字集合。
典型例子:
- Shannon 的采样定理(1949)指出在什么条件下不会丢失信息:“If a function f(t) contains no frequencies higher than W cps, it is completely determined by giving its ordinates at a series of points spaced 1/2W seconds apart(中译:如果一个函数 f(t) 不包含高于 W Hz 的频率,那么只需在每隔 1/2W 秒的点上给出它的取值,就能完全确定这个函数)" (Shannon (1949), Communication in the Presence of Noise, Proc. IRE 37(1)。这就是为什么一首歌可以被存进一个文件。
- 快速傅里叶变换(1965, Cooley & Tukey (1965), Math. Comp. 19(90), Crossref record)让离散频率分析变得足够高效,几乎无处不在。
- 有限元法,最早由 Courant 在 1943 (MacTutor, Richard Courant)用数值方法实现,把一座桥或机翼切成小块,让机器能算出答案。
- 浮点数(IEEE 754-2019, IEEE Standards Association, IEEE 754-2019)让每台计算机都拥有一份有限的数字菜单,来近似整个实数轴。
底层的机器本质上是离散的:图灵机的纸带每格只存“exactly one symbol(中译:恰好一个符号)”每格(Stanford Encyclopedia of Philosophy, Turing Machines).
这里的动机是“爱”——最直接的,就是服务于人:比如工程师、听众,或者核磁共振里的病人。在厨房,温控器没法实时、连续地读取烤箱温度。它每秒采样几次,面包依然能烤得刚刚好。
自然界有时也会给出离散的答案:普朗克在1900年12月14日 (MacTutor, Max Planck)提出能量是以完整的量子为单位的。至于时空本身到底是不是“颗粒状”,现在还没有定论。
转向4 · 连续松弛离散:当搜索空间大到无法枚举
触发条件:一个离散选择,选项太多,没法一个个试。
技术手段:把离散问题“放松”成连续问题,先解一个容易的光滑版本,再把答案四舍五入回离散。在优化里,这叫线性规划松弛:让原本只能取0或1的变量,可以在0到1之间任意取值。代价就是整数性缺口,也就是最优整数解和连续解之间最坏情况下的比值(Wikipedia, Linear programming relaxation).
在厨房(举例说明,不是真实操作)里,连锁店的优化器可能会给某家门店计划2.7个鸡蛋。现实中没人会订2.7个鸡蛋,但优化器每天早上都这么算,最后再四舍五入。
机器学习领域也经常用到类似的转向:
- Gumbel-softmax技巧用连续变量来近似离散选择的梯度。2016年一周内被两组人独立发现(Jang, Gu & Poole (2016), Categorical Reparameterization with Gumbel-Softmax,arXiv 1611.01144; Maddison, Mnih & Teh (2016), The Concrete Distribution,arXiv 1611.00712).
- 量化感知训练会在训练阶段模拟8位整数的四舍五入(本质上还是这种转向:用离散问题塑形的连续问题),这样权重和激活之后就能直接用纯整数运算来推理(Jacob 等人 (2017), Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference,arXiv 1712.05877)。在这种硬件上实际运行,就是第 3 种转向。
这里的动机主要是“爱”,但只要能有真理,也绝不放过。 对于 LP 松弛,平滑问题能给出一个可用的答案,并且还能严格界定最坏情况下与整数解的偏差。而 Gumbel-softmax 并没有这种界限。它的梯度是带偏的估计,由温度参数控制,工程师们为了速度也乐意接受。
循环往复,不止一圈
这四种转向不是彼此独立的小技巧。实际工作中,常常要在这个圈里反复兜转。
以语言模型为例,从头到尾:
- 词语是离散的 token。
- 训练时把它们升维成连续向量,并用梯度调整权重。这就是第 4 种转向,把离散问题松弛成平滑问题。有些训练流程还会在训练阶段模拟整数化,这也还是第 4 种转向。
- 许多上线的模型,最终会在推理硬件上用低精度整数(比如 8 位)运行。这是第 3 种转向,回到必须实际行动的机器上。(当然也有不少模型用 16 位浮点数服务;但无论如何,最后都落在一个有限、离散的数集上。)
- 输出时,每次采样一个离散 token。
离散、连续、再离散:你读到的每个答案,其实都绕了一整圈。
再比如桥梁仿真:
- 物理规律本身是连续的。
- 工程师把桥切分成有限元,也就是离散网格(第 3 种转向)。
- 然后他们不断细化网格,反复检查,直到答案在网格变细时收敛(第 1 种转向,也就是极限)。
对最终数值的信任,正是来自于在这个循环里一遍遍验证。
同样的循环,也能解释三种动机在实际中的作用:
- 美和真理,会把问题推向能一览全貌或能证明的那一端。
- 爱则把问题推向有人能用的那一端:第 3 种转向是机器有限菜单,第 4 种转向是求解器能搞定的平滑问题。
活动 3 · 看代码里的铰链
运行前先猜一猜:当 n 是一百万时,1 + 1/2 + … + 1/n 和 ln n + 0.5772 差多少?然后运行下面的代码,或者看 playground 的第 3 部分。
import math
g = 0.5772156649015329 # Euler-Mascheroni constant
for n in (10, 100, 1000, 10**6):
H = math.fsum(1/k for k in range(1, n+1))
print(n, H - (math.log(n) + g), 1/(2*n))
n = 100 # coin flips: exact count vs bell curve
exact = sum(math.comb(n, k) for k in range(56)) / 2**n
Phi = lambda z: 0.5*(1 + math.erf(z/math.sqrt(2)))
print(exact, Phi((55.5 - 50)/5))
这里的 γ 是欧拉–马歇罗尼常数 0.5772…,也就是 1 + 1/2 + … + 1/n 长期来看总是比 ln n 多出来的那一截。算出来的差分别是 0.0492、0.00499、0.000500 和 0.000000500。每次几乎都正好是 1/(2n)(实测)。掷硬币那一行算的是 100 次最多 55 个正面的概率,精确计数得 0.864373,用钟形曲线加半步连续性修正得 0.864334。这就是两端之间的铰链:欧拉–麦克劳林公式,精确描述了一个和与一个积分每一项的差。欧拉和麦克劳林大约在 1735 年各自独立发现了它,大约 1735 年 (Wikipedia,Euler–Maclaurin 公式)。剩下的 1/(2n) 就是下一个项。Kronecker 据说曾说过「God created the integers, all else is the work of man.(中译:上帝创造了整数,其余皆为人造。)" (MacTutor,Leopold Kronecker(引自二手资料))。这个“铰链”说明,离散与连续的距离,其实比它们各自与那场争论的距离还要近。
真理、爱与美:数学家为何要“转向”
这四种“转向”并非只是小技巧。每一种背后都有动机,而这些动机归为三类。
- 真理: 这种转向是为了证明。第二类最典型:用曲线首次证明了素数的分布。第四类在做 LP 松弛时能给出一个界限,也就是对四舍五入答案偏差的保证。
- 爱: 这种转向是为了服务某个人。第三类之所以存在,是因为人们需要把音乐装进文件,需要安全的桥梁和能用的扫描仪。第四类之所以存在,是因为计划员今晚就要知道明天的鸡蛋订单。
- 美: 这种转向是为了把无数情形压缩成一个。第一类用一条曲线代替了上百万次抛硬币。这个“铰链”用 ln n + γ + 1/(2n) 取代了一整张求和表。Hardy 把它当作整个学科的门槛:「Beauty is the first test: there is no permanent place in the world for ugly mathematics.(中译:美是第一道考验:丑陋的数学在世上没有立足之地。)" (Hardy(1940),A Mathematician's Apology).
只靠某一个动机,都会以一种很容易识别的方式“失灵”:
- 只有真理,没有爱 得到的只是没人能用的存在性证明。最优的鸡蛋计划确实存在,但这并不能让明天有人吃上鸡蛋。
- 只有爱,没有真理 得到的答案虽然被信任,却没有经过检验。优化器给出每家店 2.7 个鸡蛋,全部四舍五入成 3 个,完全不看误差,结果总共多发了 11% 的鸡蛋(算出来是 3 ÷ 2.7)。每家店都很开心,仓库地上全是煎蛋卷。
- 只有美,没有真理 得到的只是漂亮但还不是证明的推导。Euler 第一次算出 π²/6(见 1735)时用了没人能自圆其说的步骤。他认可的证明是在 1741 (维基百科,巴塞尔问题。答案没错,美感先于真理到来。
这里有一个我自己的视角,特此注明。我认为,真理、爱与美,是同一个真实的三个侧面,在我的信仰中也是同一个人的三个面向。你完全不需要这个信仰也能用上上面的清单。不过你可能会注意到 Wigner 对数学为何如此契合世界的感慨,他称之为「a wonderful gift which we neither understand nor deserve(中译:一种我们既无法理解、也不配拥有的奇妙礼物)" (Wigner(1960),The Unreasonable Effectiveness of Mathematics in the Natural Sciences,Comm. Pure Appl. Math. 13(1)).
一个数有两种形态吗?
本系列试验用的“身体”视角是:
- 有一种灵,让万物成为一个整体;
- 骨、肉、皮是它的层次;
- 两种形态,一种像粒子那样离散,一种像流或波那样连续。
这篇文章就是把最后那一行拆开讲。这个视角的预测是:两种形态像一根轴,贯穿所有层次,而不是独立的一层。四个转向正好印证了这一点:每次转向都改变了形态,但被研究的对象(素数的个数、声音、鸡蛋订单)本身没变。
但这个视角在物理学还没定论的地方会失效。普朗克的量子让能量变得颗粒化,但量子理论依然用的是平滑的波,空间到底是不是离散的还没人知道。数学不用选边站——两种形态都留着,按问题需要随时切换。
同一个核心,四种年龄的表达
playbook 要求有一个核心思想,能在每个年龄段都成立。这里给出四个尺度的表达,只有最后一个在本文完整展开。
| 年龄 | 核心思想 | 先用身体或双手感受 |
|---|---|---|
| 7 | 有些东西你数,比如步数;有些东西你量,比如滑行距离。步子足够小的时候,数步也像在滑。 | 先跳着数,再滑着走:“一共滑了几下?” |
| 11 | 整数有间隔,直线没有,细长的矩形能从一边“溜”到另一边。 | 沿着尺子码积木 |
| 15 | 求和是跳跃的积分,积分是平滑的求和:Δ 之于 Σ,正如 d/dx 之于 ∫。 | playground 里的阶梯 |
| 20 | 离散数学关注有间隙的计数,连续数学则处理无缝的度量;两者不断互相借力——有时为了证明,有时为了解决实际问题,有时只为让复杂变简单。 | 用代码亲自跑一遍“铰链”公式 |
同一个故事,五种角色切入
| 你是谁? | 这会影响你的决策方式 | 本周你可以立刻实践的一件事 |
|---|---|---|
| 学生 | 要不要把离散数学和微积分当作一门有镜像关系的课程来学? | 用一个例子证明 Σ 可以抵消 Δ,再和 ∫ 抵消 d/dx 的过程对比一下 |
| 工程师 | 你用的工具,优先测试哪种失效模式:混叠、整数性缺口,还是舍入误差? | 为你交付的某个工具写一句“转向说明”(参见 Operate,第 5 步) |
| 创始人 | 你的“平滑”产品承诺,能否扛住现实世界的离散限制(比如整单位、整车发货)? | 问问你的计划员,松弛方案和实际舍入之间的差距是多少 |
| 高管 | 预测曲线是不是被直接当成了订单簿? | 问清楚某个基于预测下单的订单背后的舍入规则 |
| 投资人 | 一家初创公司声称的精度,是世界本身的属性,还是编码方式的产物? | 问清楚它的核心模型依赖于哪种“转向”,以及转向失效时会发生什么 |
那些“只对了一半”的常见误区
- “计算机处理的是实数。” 其实它们用的是一个有限的有理数菜单,来模拟实数轴。直觉没错,因为这个菜单极其精细,但几乎没有哪个实数真的在里面。
- “微积分从一开始就是严密的吗?” 实际上,这套方法早在严密证明出现之前就已经被广泛使用了。Dedekind 的连续统是在 1872 才提出的,比莱布尼茨晚了将近两百年。
- “离散数学就是计算机的那一套,连续数学才是物理的那一套。” 上面提到的每一次“转向”都跨越了这条界限。素数最早是靠微积分才被攻克的,物理也早已发现了量子。
现在轮到你来教一遍
你的回教任务: 和一个 15 岁的孩子一起坐下,打开 Two Ends Playground 的第 1 部分。动滑块之前,先让他们用手画出四个矩形,猜猜 y = x² 从 0 到 1 下方的面积。再把滑块拉到 100,让他们自己观察到:矩形数量翻倍时,误差会减半。别急着说“积分”,等他们自己说出来。
预期效果: 这个 15 岁的孩子会在你运行前预测 1 + 1/2 + … + 1/1000 大约等于 ln 1000 + 0.5772 ≈ 7.485,并能解释为什么矩形越多误差越小。把他们的年龄和预测写在本文评论区。
为什么这很重要:五个为什么
问题:学生们总把离散数学和微积分当成两门风马牛不相及的课,结果一看到求和贴近积分,或者一条曲线证明了素数的事实时,就会觉得不可思议。
- 为什么会觉得不可思议? 因为他们从没见过“转向”。每门课都只讲自己的那一头,所以这些桥梁看起来像偶然巧合,其实它们都是有名字、有出处的定理,比如 de Moivre 在 1733 (MacTutor, Abraham de Moivre).
- 为什么每门课都只讲一头? 系和课程大纲是按主题分的:这边讲组合,另一边讲分析。Δ/Σ 和 d/dx/∫ 之间的镜像不归任何一门课管(Weisstein, MathWorld, Finite Difference).
- 为什么镜像这么关键? 因为所有这些“转向”都发生在这面镜子上。Euler–Maclaurin、Stirling 和生成函数,都是跨过去的方法(Wilf, generatingfunctionology).
- 为什么“跨过去”对工程师来说重要? 你用的那些工具,其实都踩在某个“转向”上:比如采样音频(Shannon (1949), Communication in the Presence of Noise, Proc. IRE 37(1)),松弛优化器(Wikipedia,线性规划松弛),量化模型(Jacob 等(2017),Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference)。如果你没搞清楚自己正处在哪个“转向”,就很容易忽略掉潜在的故障:混叠、整数性缺口、舍入误差。
- 追根溯源:这些“转向”总被当成小技巧零散讲解,而不是作为一张全局地图。修正办法就是本文的方法论:每用一个工具,都写明它所处的转向、触发条件、采用的技术、背后的动机,这样你就知道该查验什么、该防哪类坑。
实操指南:本周动手跑一遍
- 先读一遍“教给别人前要先学会”那句话。
- 数一数滑步(活动1,3分钟)。
- 画出四个矩形的阶梯,然后把 Two Ends Playground 的滑块拉到100(10分钟)。
- 运行阶梯公式的代码,并和第3部分对比(5分钟)。
- 挑一个你用过的工具(比如某种音频格式、一个求解器、一个量化模型),写一句话:它所用的转向、触发条件、技术手段、动机,以及可能出错的地方。
- 把阶梯的故事讲给一个15岁的孩子听。
检验标准:你怎么知道自己真的掌握了?
不用翻笔记,你能做到三件事:
- 说出四个转向,并各举一个例子。
- 能预测 1 + 1/2 + … + 1/n 和 ln n + γ 之间的误差(大约是 1/(2n))。
- 对你用过的一个工具,说出它的转向带来的故障模式。
有一点是这套方法测不了的:你在压力下能不能在代码堆里一眼认出“转向”。但实操第5步里那句工具注释,才是能养成的底层习惯。
预防针:现在就定下的“提醒线”
- 如果你要对信号采样,先写下它的最高频率。采样定理假设信号中没有高于该频率的成分;真实信号在采样前需要加滤波器。
- 如果你对放宽后的解做了取整,务必把误差报出来。没有误差界限的答案,就是只有爱的真理。
- 如果一个论证很美,但推导步骤没被逐步核查,那就先叫它猜想,直到每一步都查清楚。欧拉的1735推导就是个提醒。
5S 自评体系
| S | 主张 | 证据 |
|---|---|---|
| 简明性 | 正文难度不高于 13 年级。 | Flesch–Kincaid 难度等级:7.6(分数 ≤ 13),由node scripts/check-numbers-four-ages.mjs --series two-ends-of-math |
| 严谨性 | 所有日期和引用都来自台账(个别为二手来源,已注明);每个计算结果都可复现。 | 素数定理1896 (MathWorld); 铰链代码 |
| 明晰度 | 四个转向,每个都有条件、方法和动机;Euler–Maclaurin 公式是两端的铰链。 | 四个转向及其图示 |
| SMART | 本周行动:三个演示、一个工具笔记、一次教回。 | 实操指南 · 两端游乐场 |
| 意外发现 | 数学里最离散的对象——素数,最早竟是靠曲线“收服”的;优化器每天早晨都能算出 2.7 个鸡蛋的订单。 | 第 2 与第 4 次转向 |
| 真理 · 爱 · 美 | 三种动机,各有各自的单边失效,以及欧拉那步漂亮却未被证明的推导。 | 真理、爱与美 |
参考资料
- Aristotle。Categories,第 6 部分,E. M. Edghill 译。classics.mit.edu
- Huggett, N. “Zeno's Paradoxes.”Stanford Encyclopedia of Philosophy. plato.stanford.edu
- Bell, J. L. “Continuity and Infinitesimals.”Stanford Encyclopedia of Philosophy. plato.stanford.edu
- O'Connor, J. J. & Robertson, E. F. “Richard Dedekind.” MacTutor.mathshistory.st-andrews.ac.uk
- O'Connor, J. J. & Robertson, E. F. “Georg Cantor.” MacTutor.mathshistory.st-andrews.ac.uk
- “Cantor's diagonal argument.” Wikipedia.en.wikipedia.org
- “Hermann Weyl.” Stanford Encyclopedia of Philosophy. plato.stanford.edu
- O'Connor, J. J. & Robertson, E. F. “The rise of calculus.” MacTutor. mathshistory.st-andrews.ac.uk
- O'Connor, J. J. & Robertson, E. F. “Bernhard Riemann.” MacTutor. mathshistory.st-andrews.ac.uk
- Weisstein, E. W. “Finite Difference.” MathWorld. mathworld.wolfram.com
- Graham, R. L., Knuth, D. E. & Patashnik, O. Concrete Mathematics,出版社简介。 informit.com
- O'Connor, J. J. & Robertson, E. F. “James Stirling.” MacTutor. mathshistory.st-andrews.ac.uk
- O'Connor, J. J. & Robertson, E. F. “Abraham de Moivre.” MacTutor. mathshistory.st-andrews.ac.uk
- O'Connor, J. J. & Robertson, E. F. “Siméon Poisson.” MacTutor. mathshistory.st-andrews.ac.uk
- Riemann, B. (1859). On the Number of Primes Less Than a Given Magnitude, tr. D. R. Wilkins. maths.tcd.ie
- Weisstein, E. W. “Prime Number Theorem.” MathWorld. mathworld.wolfram.com
- Euler, L. E41, "De summis serierum reciprocarum." Euler Archive. scholarlycommons.pacific.edu
- “Basel problem.” Wikipedia. en.wikipedia.org
- Wilf, H. S. generatingfunctionology. math.upenn.edu
- Shannon, C. E. (1949). Communication in the presence of noise. Proc. IRE 37(1). PDF
- Cooley, J. W. & Tukey, J. W. (1965). An algorithm for the machine calculation of complex Fourier series. Math. Comp. 19(90). Crossref
- O'Connor, J. J. & Robertson, E. F. "Richard Courant." MacTutor. mathshistory.st-andrews.ac.uk
- IEEE 754-2019, Standard for Floating-Point Arithmetic. standards.ieee.org
- O'Connor, J. J. & Robertson, E. F. "Max Planck." MacTutor. mathshistory.st-andrews.ac.uk
- “Turing Machines.” Stanford Encyclopedia of Philosophy. plato.stanford.edu
- “Linear programming relaxation.” Wikipedia. en.wikipedia.org
- Jang, E., Gu, S. & Poole, B. (2016). Categorical Reparameterization with Gumbel-Softmax. arXiv:1611.01144
- Maddison, C. J., Mnih, A. & Teh, Y. W. (2016). The Concrete Distribution. arXiv:1611.00712
- Jacob, B. 等人 (2017). Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. arXiv:1712.05877
- Hardy, G. H. (1940). A Mathematician's Apology. archive.org
- O'Connor, J. J. & Robertson, E. F. “Leopold Kronecker.” MacTutor. mathshistory.st-andrews.ac.uk
- Wigner, E. P. (1960). The Unreasonable Effectiveness of Mathematics in the Natural Sciences. Comm. Pure Appl. Math. 13(1). PDF
- Kobayashi, K. (2024). Interactive learning effects of preparing to teach and teaching. Educational Psychology Review. ERIC EJ1414484