这个东西本质上是用离散的东西去拟合和逼近实数。本质上是整数序列与实数的对应。是用来逼近的,拥有非常良好的性质。

这个东西用我的话来说的话,连分数本身通过截断可以用来近似,而且很好的性质是他是最优有理近似。而且他与这个数本身的性质有着非同寻常的关系,他们在本质上同源。以及他实际上和欧几里得算法是亲戚,本质上都是对东西进行数论上的分解,只不过这个连分数把范围扩大了,扩大到实数,而且还拥有众多其他性质。还有一个点就是他还有另一个出现的形式就是通过若干次分子加分母或者分母加分子也就是 Stern-Brocot 树的形式出现,我感觉这种方式更好出 oi 题。

例题:Square Resistance Value

贴上 DeepSeek 的讲解:

连分数是一个被严重低估的数学工具。它用一串整数编码一个实数,并且这串整数直接给出了该实数的最佳有理逼近序列。下面我从定义开始,逐步推进到关键性质、证明,最后给出你想要的概括。


1. 什么是连分数

一种最常用的形式是简单连分数(Simple Continued Fraction):

对于实数 $\alpha$,令
$$ \alpha_0 = \alpha, \quad a_0 = \lfloor \alpha_0 \rfloor $$
然后递归定义:
如果 $\alpha_n$ 不是整数,则
$$ \alpha_{n+1} = \frac{1}{\alpha_n - a_n}, \quad a_{n+1} = \lfloor \alpha_{n+1} \rfloor $$
这样会得到一个可能终止的整数序列 $a_0, a_1, a_2, \dots$,记作
$$ \alpha = [a_0; a_1, a_2, a_3, \dots] $$
其含义是: $$ \alpha = a_0 + \cfrac{1}{a_1 + \cfrac{1}{a_2 + \cfrac{1}{a_3 + \ddots}}} $$

  • 若 $\alpha$ 是有理数,上面的过程会终止(某一步 $\alpha_n$ 为整数),得到有限连分数
    $\alpha = [a_0; a_1, \dots, a_n]$。
  • 若 $\alpha$ 是无理数,则序列无限延续,得到无限连分数

唯一性细节:有理数的连分数表示几乎唯一,只在末尾有歧义:
$[a_0; a_1, \dots, a_n] = [a_0; a_1, \dots, a_n-1, 1]$,若 $a_n > 1$。
除此之外,表达方式唯一。


2. 关键概念:渐近分数

截断到第 $k$ 个部分商 $a_k$,得到第 $k$ 渐近分数: $$ \frac{p_k}{q_k} = [a_0; a_1, \dots, a_k] $$ 这些分数以极特殊的方式逼近原来的实数 $\alpha$。

核心递推关系(附证明)

对连分数 $[a_0; a_1, a_2, \dots]$,定义: $$ \begin{aligned} p_{-2} &= 0, & p_{-1} &= 1, \ q_{-2} &= 1, & q_{-1} &= 0. \end{aligned} $$ 则对 $n \ge 0$, $$ p_n = a_n p_{n-1} + p_{n-2}, \quad q_n = a_n q_{n-1} + q_{n-2}. $$ 并且 $\displaystyle \frac{p_n}{q_n} = [a_0; a_1, \dots, a_n]$。

证明(归纳法)
当 $n=0$:
$p_0 = a_0 \cdot p_{-1} + p_{-2} = a_0 \cdot 1 + 0 = a_0$
$q_0 = a_0 \cdot q_{-1} + q_{-2} = a_0 \cdot 0 + 1 = 1$
所以 $p_0/q_0 = a_0 = [a_0]$,成立。

假设对 $n-1$ 成立,即
$[a_0; a_1, \dots, a_{n-1}] = p_{n-1}/q_{n-1}$, 并且递推成立。现在看 $$ [a_0; a_1, \dots, a_{n-1}, a_n] = [a_0; a_1, \dots, a_{n-1} + 1/a_n] $$ 将其视为一个以 $a_{n-1} + 1/a_n$ 结尾的有限连分数,利用 $n-1$ 时的公式: $$ \frac{ (a_{n-1} + 1/a_n) p_{n-2} + p_{n-3} }{ (a_{n-1} + 1/a_n) q_{n-2} + q_{n-3} } $$ 整理分子: $$ a_{n-1} p_{n-2} + p_{n-3} + \frac{1}{a_n} p_{n-2} = p_{n-1} + \frac{p_{n-2}}{a_n} $$ 同样分母为 $q_{n-1} + q_{n-2}/a_n$。所以整体等于 $$ \frac{a_n p_{n-1} + p_{n-2}}{a_n q_{n-1} + q_{n-2}} = \frac{p_n}{q_n}. $$ 归纳成立。 ∎

这个递推是连分数理论的基石。它保证了 $p_n, q_n$ 增长非常快,且渐近分数之间满足大量恒等式。


3. 最佳有理逼近性质

这是连分数最深刻、最实用的特点。

定理1(最佳逼近)
如果 $\left| \alpha - \frac{p}{q} \right| < \frac{1}{2q^2}$,那么 $\frac{p}{q}$ 一定是 $\alpha$ 的某个渐近分数。

定理2(中间分数之外的更强性质)
在分母不超过 $q_n$ 的所有有理数中,渐近分数 $\frac{p_n}{q_n}$ 到 $\alpha$ 的距离最近。
精确地说,对任何 $0 < q \le q_n$ 且 $\frac{p}{q} \neq \frac{p_n}{q_n}$,都有 $$ |\alpha - \frac{p_n}{q_n}| < |\alpha - \frac{p}{q}|. $$

证明(选出最具代表性的)
我们先证明一个关键估计: $$ \left| \alpha - \frac{p_n}{q_n} \right| < \frac{1}{q_n q_{n+1}}. $$ 利用相邻渐近分数的差: $$ \frac{p_{n+1}}{q_{n+1}} - \frac{p_n}{q_n} = \frac{(-1)^n}{q_n q_{n+1}} $$ (这一点从递推式可以导出,下面会证)。
而 $\alpha$ 位于 $\frac{p_n}{q_n}$ 与 $\frac{p_{n+1}}{q_{n+1}}$ 之间(对于简单连分数,渐近分数左右交替逼近),所以 $$ \left| \alpha - \frac{p_n}{q_n} \right| < \left| \frac{p_{n+1}}{q_{n+1}} - \frac{p_n}{q_n} \right| = \frac{1}{q_n q_{n+1}} \le \frac{1}{q_n^2}. $$ 这就得到了 $1/q_n^2$ 的界限。

为什么这是最优的?
假设存在有理数 $a/b$ 使得 $b \le q_n$ 且 $$ \left| \alpha - \frac{a}{b} \right| \le \left| \alpha - \frac{p_n}{q_n} \right|. $$ 可以用连分数的交错逼近性质和中介分数证明这必然推出矛盾,最终得出必须 $a/b = p_n/q_n$。这就是 Hurwitz 定理的基础:对任意无理数 $\alpha$,存在无穷多个有理数 $p/q$ 使得 $|\alpha - p/q| < 1/(\sqrt{5}q^2)$,且常数 $\sqrt{5}$ 最优,而渐近分数正是提供这样逼近的序列。

这类证明的完整版较长,但精髓就是:连分数产生的分母增长速度恰好与逼近精度完美匹配。


4. 实数的连分数分类与周期性质

有限 ⇔ 有理数

欧几里得算法本质上就是求连分数:对有理数 $a/b$,
$a = a_0 b + r_1$,然后 $b / r_1$ 继续,正好得到有限序列。因此有理数 = 有限连分数

周期连分数 ⇔ 二次无理数(拉格朗日定理)

一个实数 $\alpha$ 是二次无理数(即有理系数二次方程的根)当且仅当它的连分数展开最终周期。

证明概要(←方向,即二次无理数⇒周期):
设 $\alpha$ 是整系数二次方程 $A\alpha^2 + B\alpha + C = 0$ 的根,判别式非平方数。
其完全商 $\alpha_n$ 满足一个变换: $$ \alpha = \frac{p_{n-1} \alpha_n + p_{n-2}}{q_{n-1} \alpha_n + q_{n-2}}. $$ 代入二次方程可得 $\alpha_n$ 也满足某个具有相同判别式的二次方程。由于该类方程整系数有界,$\alpha_n$ 只能取有限多个值,因此必重复,从而出现周期。逆方向(周期⇒二次无理数)则直接展开循环部分求解即可。 ∎

这个定理表明,连分数将无理数的“代数复杂度”直接编码为序列的周期结构。


5. 误差与收敛速度

相邻渐近分数之差: $$ p_n q_{n-1} - p_{n-1} q_n = (-1)^{n-1} $$ 这也容易从递推式归纳得出。由它立刻有: $$ \frac{p_n}{q_n} - \frac{p_{n-1}}{q_{n-1}} = \frac{(-1)^{n-1}}{q_{n-1} q_n}. $$ 所以渐近分数严格地向 $\alpha$ 交替逼近。进一步可推出: $$ \left| \alpha - \frac{p_{n-1}}{q_{n-1}} \right| > \left| \alpha - \frac{p_n}{q_n} \right| $$ 并不总成立,但每次“好”的部分商越大,逼近改善越多。尤其黄金比例 $\varphi = [1;1,1,\dots]$ 部分商全1,逼近最慢,是“最无理的数”。


6. 一句话概括精髓

连分数是把实数的“整数骨架”抽取出来的一串指令,它产出的渐近分数,是所有分母受限情况下对实数的最佳有理逼近。


7. 使用场景

  • Pell方程 $x^2 - D y^2 = 1$:$\sqrt{D}$ 的连分数周期给出了基本解。
  • 密码学(RSA低解密指数攻击):Wiener 用 $\frac{e}{N}$ 的连分数渐近分数破解 $d < N^{1/4}$。
  • 日历设计:太阳年约 365.2422 天,连分数给出渐近分数 365, 365+1/4(闰年), 365+8/33, … 决定闰年规则。
  • 音乐律制:纯五度 $\log_2 3/2$ 的连分数渐近给出五度相生律、十二平均律等。
  • 分数近似与计算:在 OI 中,当你需要用分数精确表示或逼近浮点数时,连分数可给出既约分数且分母最小。
  • 整数分解(连分数分解法):利用 $\sqrt{kn}$ 的连分数寻找同余式平方。

8. 它揭示了什么数学结构

连分数揭示了实数集合与整数序列空间(本质上是 $\mathbb{Z} \times \mathbb{N}^\infty$)之间的一种深刻同构(有限序列对应有理数)。在拓扑和测度层面,它引出了高斯映射的动力系统;在数论层面,它提供了最佳逼近网格——Stern-Brocot 树就是连分数的二叉树形式。

更抽象地看,连分数体现了 $\mathrm{SL}(2,\mathbb{Z})$ 在实数上的作用。每个矩阵 $$ \begin{pmatrix} p_n & p_{n-1} \ q_n & q_{n-1} \end{pmatrix} $$ 将无穷远点映射为渐近分数。连分数算法等价于对该矩阵的欧几里得分解。因此,这条整数序列刻画了实数在模群作用下的轨道,它为无理数赋予了一种“整数坐标”,将连续的混沌装进离散的规则之中

第8点的核心在于:连分数远不止是一个计算技巧,它通过整数序列矩阵动力系统二叉树这几样东西,建立起了连续世界与离散世界之间的深刻同构。下面我把它拆解成几个层次,并给出必要的证明细节。


8.1 实数 $\longleftrightarrow$ 整数序列:一种“坐标化”

连分数算法给了我们一个映射: $$ \alpha \mapsto (a_0; a_1, a_2, \ldots) $$ 其中 $a_0 \in \mathbb{Z}$,其余 $a_i \in \mathbb{N}_{>0}$。
这个映射是:

  • 单射:不同实数产生不同序列(除去末尾为1的有限序列歧义)。
  • 满射(到特定空间):任意有限序列给出有理数,任意无限序列给出无理数。

这意味着,全体无理数就等价于全体无穷正整数序列 $\mathbb{N}_{>0}^\infty$,而有理数等价于有限序列。
这相当于为每个实数赋予了一组“整数坐标”,就像连续信号被展开成了一串离散指令。逼近一个实数,只需要截断这个序列即可——渐近分数就是“前k个坐标读出的值”


8.2 高斯映射:动力系统的视角

定义高斯映射 $T: [0,1) \to [0,1)$: $$ T(x) = \left{ \frac{1}{x} \right} = \frac{1}{x} - \left\lfloor \frac{1}{x} \right\rfloor \quad (x \neq 0), \quad T(0)=0. $$ 则连分数展开与 $T$ 的迭代直接对应: $$ a_0 = \lfloor \alpha \rfloor, \quad x_0 = {\alpha}, $$ $$ a_n = \left\lfloor \frac{1}{T^{n-1}(x_0)} \right\rfloor, \quad T^n(x_0) = \left{ \frac{1}{T^{n-1}(x_0)} \right}. $$ 这里 $\alpha_n = a_n + T^n(x_0)$。于是连分数序列就是高斯映射的一个轨道(整数部分记录)

高斯映射有一个著名的不变测度: $$ \mu(A) = \frac{1}{\ln 2} \int_A \frac{dx}{1+x}. $$ 它是遍历的,这解释了为什么几乎所有无理数的连分数系数的几何平均会趋近于一个常数(欣钦常数)。动力系统结构告诉我们:连分数编码的,正是数在“高斯动力系统”下的符号动力学


8.3 $\mathrm{GL}(2,\mathbb{Z})$ 矩阵作用:线性化

定义矩阵: $$ M_n = \begin{pmatrix} p_n & p_{n-1} \ q_n & q_{n-1} \end{pmatrix}. $$ 由递推 $p_n = a_n p_{n-1} + p_{n-2},\ q_n = a_n q_{n-1} + q_{n-2}$,立即得到 $$ M_n = M_{n-1} \begin{pmatrix} a_n & 1 \ 1 & 0 \end{pmatrix}, \quad M_{-1} = \begin{pmatrix} 1 & 0 \ 0 & 1 \end{pmatrix}, $$ 并且 $\det(M_n) = (-1)^{n-1}$。因此每个 $M_n \in \mathrm{GL}(2,\mathbb{Z})$。

把实数 $\alpha$ 与完全商 $\alpha_n$ 联系起来的关系: $$ \alpha = \frac{p_{n-1} \alpha_n + p_{n-2}}{q_{n-1} \alpha_n + q_{n-2}} $$ 恰好可以写成: $$ \begin{pmatrix} \alpha \ 1 \end{pmatrix} \propto M_{n-1} \begin{pmatrix} \alpha_n \ 1 \end{pmatrix}. $$ 这揭示了连分数就是作用于上半平面(或实数)的分式线性变换的矩阵连乘积。

特别地,如果我们只看整数序列,它等价于将矩阵 $\begin{pmatrix} a & b \ c & d \end{pmatrix}$ 分解为生成元 $S = \begin{pmatrix} 1 & 1 \ 0 & 1 \end{pmatrix}$ 和 $T = \begin{pmatrix} 0 & 1 \ 1 & 0 \end{pmatrix}$ 的乘积(欧几里得算法)。连分数就是 $\mathrm{SL}(2,\mathbb{Z})$ 中元素的“欧几里得约化”或“单词表示”。群作用下的轨道,正是所有渐近分数构成的逼近网格。


8.4 Stern-Brocot 树:二叉树结构

把所有既约正分数按照下面方式排成二叉树:

  • 根是 $\frac{1}{1}$;
  • 每个节点 $\frac{a}{b}$ 的左孩子是 $\frac{a}{a+b}$,右孩子是 $\frac{a+b}{b}$。

这棵树包含了所有正有理数,且每个有理数只出现一次。

连分数与这棵树的关系极为漂亮:
给定一个连分数展开 $[a_0; a_1, a_2, \dots]$,可以在 Stern-Brocot 树上找到对应的路径。方法:

  • 从 $\frac{1}{0}$ 和 $\frac{0}{1}$ 开始(作为“左边界”和“右边界”,分别视为 $-\infty$ 和 $+\infty$ 的表示)。
  • 沿树移动:$a_0$ 决定了从边界开始的转向次数(例如向右 $a_0$ 次),然后交替方向,每次转向次数等于接下来的部分商 $a_i$。最终达到目标有理数。

这样,渐近分数恰好是路径上的“拐点”。该树完整反映了最佳逼近的网格结构,因为有理数与所有区间套二分对应,而连分数提供了每个有理数到达的精确导航指令


8.5 连续与离散之间的“同构”

总结来说,连分数揭示了如下结构对应:

连续世界(实数) 离散世界(整数序列)
实数 $\alpha$ 序列 $(a_0, a_1, a_2, \dots)$
无理数 无限序列
有理数 有限序列
逼近精度 序列截断
最佳有理逼近 渐近分数(矩阵连乘截断)
分式线性变换轨道 $\mathrm{GL}(2,\mathbb{Z})$ 矩阵单词
高斯动力系统轨道 符号序列
数轴上全序 Stern-Brocot 二叉树路径

正是这个对应,赋予了无理数一种“整数坐标”——将原本连续且看似混沌的无理数,分解为一系列整数的指令。
所有的逼近理论,只是这个结构的一个自然推论:一个好的逼近,无非是在离散序列中选择一个前缀。连分数从本质上说,是把实数的连续混沌装进了离散的规则之中,并且这个规则是唯一且最优的。