Stern-Brocot Tree

我们主要研究下面几个问题:

  1. 为何出现在这棵树中的每个数都是最简分数,即 $m\perp n$
  2. 为何所有可能的分数 $m/n$ 都恰好出现一次
  3. 为何所有的数从左到右都是递增的

介绍

参加具体数学 4.5 互素 Relative Primality

重要结论:$m'n-n'm=1$

证明:

我们首先验证初始情况:$1\times 1-0\times 0=1$,成立。

接下来我们考虑任意的 $m/n, m'/n'$。当插入新的中位分数 $(m+m')/(n+n')$ 时,我们所需要验证的条件就变为了:

$$
(m+m')n-m(n+n')=1
$$

$$
m'(n+n')-(m+m')n'=1
$$

可以发现,其等价于插入前的条件:

$$
m'n-n'm=1
$$

所以,每插入一个新的中位分数我们并不需要判断新的情况,反而只需要往上回溯,判断其插入前的条件。我们可以发现所有的数都可以回溯到最初的 $0/1$ 和 $1/0$。我们已经验证了这个情况的正确性,遂证明了这个结论。

中位分数必定是最简分数

接下来,我将要证明:若 $m'n-n'm=1$,则必然有 $\gcd(m'+m,n'+n)=1$.

由于我们有:

$$
m'n-n'm=1
$$

将其进行改写,不难得出:

$$
n(m+m')-m(n+n')=1
$$

也就是说,存在整数解 $(x,y) \in \mathbb Z^2$ 使得

$$
(m+m')x+(n+n')y=1
$$

有解 (取 $x=n, y=-m$)。根据裴蜀定理,我们就必然有

$$
\gcd(m+m',n+n') \mid 1
$$

所以

$$
\gcd(m+m',n+n') = 1
$$

递增性:$m/n < (m+m')/(n+n') < m'/n'$

若 $m/n < m'/n'$,则上式必然成立。因为不难证明:

$$
\frac m n - \frac {m+m'}{n+n'} < 0
$$

$$
\frac {m+m'}{n+n'} - \frac {m'} {n'} < 0
$$

这同时也说明,分数 $a/b$ 至多出现一次。

不遗漏性证明

接下来,我们要证明 $\forall a/b \in \mathbb Q^+$,$a/b$ 至少出现一次。

构造下面的获得方式:

$\forall a/b \in \mathbb Q^+$,$a/b$

$$
\frac m n = \frac 0 1 < \Big ( \frac a b \Big ) < \frac 1 0 = \frac {m'}{n'}
$$

这里,我们用"括号" 来代表我们还没有取到这个数。

如果在某个阶段,我们有:

$$
\frac m n < \Big ( \frac a b \Big ) < \frac {m'}{n'}
$$

我们有三种情况:

(1)

$$
\frac a b = \frac {m+m'}{n+n'}
$$

顺利地获得了目标数,也就是说达成了目标。构造终止。

(2)

$$
\frac a b > \frac {m+m'}{n+n'}
$$

我们做如下操作

$$
m \leftarrow m + m'
$$

$$
n \leftarrow n + n'
$$

然后就可以继续进行迭代。因为:

$$
\frac {m+m'}{n+n'} < \frac a b < \frac {m'} {n'}
$$

(3)

$$
\frac a b < \frac {m+m'}{n+n'}
$$

我们做如下操作

$$
m' \leftarrow m + m'
$$

$$
n' \leftarrow n + n'
$$

然后就可以继续进行迭代。因为:

$$
\frac m n < \frac a b < \frac {m+m'}{n+n'}
$$

这个迭代的次数是有限的。因为条件

$$
\begin{aligned}
&~\frac a b - \frac m n > 0, \frac {m'}{n'} - \frac a b < 0 \\
\Leftrightarrow &~ an-mb \geq 1, bm'-an' \geq 1 \\
\Leftrightarrow &~ (m'+n')(an-mb) \geq m'+n',\\
&~(m+n)(bm'-an') \geq m+n \\
\Leftrightarrow &~ (m'+n')(an-mb) + (m+n)(bm'-an') \\
&~ \geq m'+n'+m+n \\
\Leftrightarrow &~ a+b \geq m'+n'+m+n
\end{aligned}
$$

由于 $m, n, m', n'$ 一直递增,所以,我们一定能够在有限步骤内得到 $a/b$。

接下来是关于不遗漏性的讨论:

  1. 有没有可能 $a/b$ 逃出了框定的界限?不可能。因为最初我们设定了上界和下界:$1/0$, $0/1$。在之后的构造中,$a/b$ 的范围被不断缩小,直至相等。
  2. 在明确了我们的构造方式不会产生错误情况后,我们论证了构造将会在有限步骤内结束,也就说明了对于任意的 $a/b$ 我们都能够在有限步骤内被成功得到,也就是说$\forall a/b \in \mathbb Q^+$,$a/b$ 至少出现一次。

其实,这个寻找过程就是一种分治,只不过不是均等的二分罢了。我们在构造过程中保证了单调性,同时也论证了步骤的有限性,所以我们就能论证没有数会被遗漏。

后记

感谢 @fcx 提出的疑问。

我们一定要意识到:

$$
a+b = m'+n'+m+n
$$

并不意味着收敛,甚至说这个等式本身就没有什么意义!

回过头看我们是怎么得到不等式的,我们是通过一个严格不等号得到的不等式,然后再通过整数的限制加上了一个大于等于号,所以这个等于号其实并没有什么实际的意义,只是代数变换中的副产物。

再来想想我们证明了什么:

  1. 能够迭代代表一定符合区间条件,一定满足成立的条件
  2. 不能继续迭代说明一定达到了目标
  3. 迭代的次数是有限步

由此便说明了不遗漏。

此外,如果 $a,b$ 不互素,也不会产生问题。因为我们看的是 $a/b$ 这个整体,并没有分开看待 $a,b$。

最后修改:2022 年 03 月 07 日 12 : 00 AM
真的不买杯奶茶嘛....qwq