实数的完备性
有理数在数轴上稠密(见 数轴与数系的四层嵌套 §3),却没有占满数轴:平方等于 的那个位置上没有有理数(见 无理数:反证、递降与超越)。「占满」这件事需要一条能写下来的性质,它就是完备性。
本页把完备性的四种常见说法摆在一起,说明它们讲的是同一件事,再给出这条性质在 上失效的具体后果:二分法在有理数域内永不终止。
1 · 有上界却没有上确界的集合
考虑 。它非空(),且有上界( 是一个上界,因为 时 )。有理数 、、、 都在 里,它们的平方递增而始终小于 。
到第十项 时平方是 ,差距缩到十亿分之一量级,仍不为零。每一位取的都是下截断,所以这一列数永远停在 内部,够不着那个平方恰为 的位置。
反过来看 的上界。 是上界, 也是, 也是。有没有最小的那个?在 内没有。
定理 1.1 设 是正有理数且 ,则 仍是有理数、仍满足 ,且 。
证明 由 经四则运算得到,故仍在 内。直接计算得 故 。又 ,故 。∎
的每个有理上界都能造出一个更小的有理上界,所以上界集合在 内没有最小元, 在 内没有上确界。
实跑 shrinkingBounds 从
出发,得到
,超出量
依次是
、、、、:每步平方一次,收敛极快,但一次也没到零。代价写在分母上,这五项的分母位数是
,再走两步到
与
。写完这段才注意到这串分数并不陌生——除首项外,它们就是
的连分数渐近分数里第
项(
是第二项,
是第四项,
是第八项)。单测把这条对应关系钉住了,两条来路完全不同的算法给出同一批分数。
2 · 确界原理
定义 2.1(上确界) 集合 的上确界 指 的最小上界:它是 的上界,且任何比它小的数都不是 的上界。
定理 2.2(确界原理) 实数的每个有上界的非空子集都有上确界,且这个上确界是实数。
这条命题不是从别处推出来的,它是实数系的一条公理(或某种等价物)。 不满足它:§1 的 就是反例。把 看成实数的子集,它的上确界存在,位置在 ;把 看成有理数的子集,那个位置上没有有理数,上确界无处安放。
完备性这个词说的就是这件事: 里没有「该有个数却没有数」的位置。
3 · 有理数域上失效的零点存在定理
完备性的后果里最容易看见的一条是零点存在定理:闭区间上连续且两端异号的函数必有零点(见 函数的零点与二分法 §2)。这条定理的证明用到确界原理,因此它在 上不成立。
就是反例。在有理数上考察它:,,两端异号; 在有理数上处处连续;而 在 内无解。定理的结论直接落空。
于是二分法在 内不终止。每一步取中点、比较符号、丢掉一半,区间长度精确减半,端点始终是有理数,而中点的平方从不等于 。
实跑 bisectOnQ 走到第
步:区间宽
,中点的分母已是
位十进制数,符号判定从未给出零。跑到第
步仍是如此——单测就断言到这一步。对照组把目标换成
,起始区间取
,第二步的中点就是
,二分当场终止。差别不在算法,在根是不是有理数。
另有一处容易说错的地方。区间在缩小,但每个区间里的有理数一直是无穷多个(稠密性并没有失效)。失效的是这一列区间的公共部分:在 内它是单点 ,在 内它是空集。区间套定理断言的正是这个交集非空,而 上它落空了。
4 · 完备性的等价表述
同一条性质有若干种常见写法,互相之间可以循环推导,任取一条当公理,其余都成为定理。
| 表述 | 内容 | 在 上的反例 |
|---|---|---|
| 确界原理 | 有上界的非空集合有上确界 | |
| 单调有界定理 | 单调递增且有上界的数列收敛 | |
| 区间套定理 | 长度趋于零的闭区间套交于唯一一点 | §3 的二分区间列 |
| Cauchy 列收敛 | 任何 Cauchy 列都有极限 | 同上,二分的两个端点列 |
四条在 上同时失效,而且反例都能由 这一个位置造出来。这不是巧合:缺一个位置就足以让四条一起断掉,而补上全部这样的位置就得到 。
警示 · 「单调有界必收敛」在 上失效,靠的不是数列本身有问题。 每一项都是有理数、单调递增、有上界 ,作为有理数列它完全合法,只是极限不在 里。判断收敛必须先说清「在哪个集合里收敛」,省掉这个限定词就会得出矛盾的结论。
5 · 实数的两种构造
上面把完备性当作公理来用。若要从 出发把 造出来,有两条经典路线,都在 19 世纪后期给出。
Dedekind 分割把每个实数定义为 的一个切分:取 的子集 ,要求它非空、不等于 、对向下封闭( 且 则 )、且无最大元,那条切口就是一个实数。前两条不可省,否则 与 自身也会各算一个实数,凭空多出两个端点。 对应的切口是 §1 的 与它的补。Cantor 与 Méray 的路线用 Cauchy 列:把有理 Cauchy 列按「差趋于零」分类,每个等价类是一个实数, 所在的那一类就是 。
两条构造给出同构的结果,本页不展开验证。值得记的是它们的共同点:都是拿 里的无穷多个对象打包成 里的一个数。这一点在代码里有直接的回响——机器存不下无穷多个对象,所以计算机里的「实数」只能是别的东西,见 浮点数:实数在代码里的残影。
6 · 参考文献
- Completeness of the real numbers. Wikipedia. 完备性的各种等价表述及它们的互推。https://en.wikipedia.org/wiki/Completeness_of_the_real_numbers
- Least-upper-bound property. Wikipedia. 确界原理,以及有理数为何不具备它。https://en.wikipedia.org/wiki/Least-upper-bound_property
- Dedekind cut. Wikipedia. 用分割构造实数。https://en.wikipedia.org/wiki/Dedekind_cut
- Construction of the real numbers. Wikipedia. Cauchy 列等价类构造与两条路线的等价性。https://en.wikipedia.org/wiki/Construction_of_the_real_numbers
- Nested interval theorem. Wikipedia. 区间套定理的陈述与它同确界原理的关系。https://en.wikipedia.org/wiki/Nested_intervals