下面是这类分形的构造过程演示,每一步中新加入的圆用黄色表示。简单来说,每次迭代都是在现有圆之间的空隙中嵌入另一个圆:
阿波罗尼奥斯垫的构造过程https://www.zhihu.com/video/1216730289135042560
从任意一个三圆相切出发,都能构造出类似的分形。但是上面的例子还有一个特殊的地方:所有圆的曲率都是整数。乍一看可能让人感觉不可思议,但是了解笛卡尔定理之后,背后的原理其实格外简单。
假设四个圆
两两相切,并且它们的曲率
都是整数。现在从中选出三个圆,例如
,找到两个与它们都相切的圆,那么它们的曲率都满足下面的方程:
方程的根是多少呢?我们知道其中一个根必然是
,这是已知圆
的曲率。根据韦达定理,另一个根就是
,这是未知圆的曲率。由于
都是整数,未知圆的曲率
也是整数。因此,最初选择的四个圆都是整数曲率,那么构造分形时产生的新圆也必然是整数曲率!
现在的问题简单多了,只要找到“四个具有整数曲率又两两相切的圆”就行。巧合的是,例子实在是太丰富了:
这类特殊的阿波罗尼奥斯垫(Apollonian Gasket)有个名字,叫“Integral Apollonian Gasket”,其中的Integral指的就是分形中的圆具有整数曲率。

五、四圆相切与黄金分割比

下面的序列由无数不同的圆构成:
其中任意连续四个圆两两相切。设圆
的曲率为
,我们就得到了一个向两头无限延伸的曲率数列:
由笛卡尔定理和韦达定理可知,一旦我们给定了其中连续四项,这个数列就完全确定了,因为连续四个曲率必须满足如下关系:
借助上一节中的内容,取适合的整数曲率作为种子,就能得到文章开头提到的几个序列:
对于同样具备递推关系的斐波那契数列来说,随着数列的不断延伸,相邻两项的比值趋近于一个常数:黄金分割比
。曲率数列也有类似的性质,比值大约是
,具体值是多少呢?
介绍一种不正经的计算方法:假设数列中相邻项的比值是个常数
,根据曲率之间的数量关系,可以得到下面的方程:
这个一元四次方程有四个解,两个实根
,两个复根
:
其中的
就是黄金分割比。对比四个根的模,
可以发现
是唯一模大于
的根。对于任意一个曲率数列来说,随着项数
的增加,相邻项之间的比值
就会趋近于
。此外
恰好是
的倒数,当项数
减小时,相邻项之间的比值
就会趋近于
。
剩下的两个根
和
有什么意义呢?这张图展示了一个相切圆序列
,两条黄色螺线分别经过
和
的切点。
根据我们刚才推算的相邻项的比值关系,两条螺线的收缩率
最终会趋向于定值
。不过除了收缩到点之外,两条螺线还在不停旋转。实际上,螺线的旋转角
是
与
给出的:
下面是螺线局部放大的动画。虽然初始时旋转角有所起伏,但随着放大倍数的增加,旋转角逐渐趋于稳定:
https://www.zhihu.com/video/1212769218523148288
简单小结一下:给定任何一个相切圆序列
,我们都可以写出它的曲率序列
。而且无论这两个序列是如何生成的,黄金分割比
都印刻在其中。
对于
来说,黄金分割比
在相邻两项的比值极限中。
对于
来说,黄金分割比
在过切点螺线的收缩率
和旋转角
中。
如果你想了解更多关于上述数列和螺线的内容,可以去看看Coxeter的文章Loxodromic Sequences of Tangent Spheres。

六、1/2 + 2/3 = 3/5 ?

说到四圆相切,还有一个好玩的例子。虽然它和笛卡尔定理关系不大,但是不提一下实属可惜。
画一条数轴,找出所有位于
之间的既约分数
。对于每个最简分数,我们都安排一个圆:这个圆在数轴上方,与数轴相切于
,半径为
。两端的整数
和
特殊对待,分别看作
和
。
规则看起来超级随意,画出来的效果却很漂亮:
莫非又是一堆相切的圆?我们继续放大,看看内部的细节究竟如何:
https://www.zhihu.com/video/1213088259800559616
圆的大小和位置恰到好处,彼此完美相切。这就是著名的福特圆(Ford Circles),一个由既约分数引出的分形。
为了揭示福特圆的奇妙性质,我们先从分形中取出两个圆开始探索。假设取出的两个圆
和
分别对应分数
与
,那么
和
的位置关系是什么?下面展示了一种相切的情况,其中
且
:
对于其中标出的直角三角形,不难计算各边的值,再由勾股定理,可以得到
之间的关系:
看起来挺吓人,化简结果却很简单:
用同样的方法,可以求出两圆相离时的条件: