有一类数列,选择四个数字作为种子,它就能依靠特定的递推规则向两头无限增长,并且相邻两项的比值都会趋近于 φ + φ \varphi + \sqrt{\varphi} φ+φ ,而其中的 φ \varphi φ就是大名鼎鼎的黄金分割比。 比如下面的四个数列,红色的数就是生成整个数列的种子。 ⋯ , 12563 , 4346 , 1503 , 522 , 179 , 62 , 23 , 6 , 3 , 2 , − 1 , 2 , 3 , 6 , 23 , 62 , 179 , 522 , 1503 , 4346 , 12563 , ⋯ ⋯ , 36295 , 12558 , 4342 , 1507 , 519 , 178 , 66 , 19 , 7 , 6 , − 2 , 3 , 7 , 10 , 42 , 115 , 327 , 958 , 2758 , 7971 , 23047 , ⋯ ⋯ , 28464 , 9845 , 3405 , 1184 , 404 , 141 , 53 , 12 , 8 , 5 , − 3 , 8 , 12 , 29 , 101 , 276 , 800 , 2325 , 6701 , 19376 , 56004 , ⋯ ⋯ , 39695 , 13730 , 4763 , 1638 , 567 , 206 , 59 , 26 , 15 , − 6 , 11 , 14 , 23 , 102 , 267 , 770 , 2255 , 6482 , 18747 , 54198 , 156599 , ⋯ \cdots,\,12563,\,4346,\,1503,\,522,\,179,\,62,\,23,\,6,\,3,\,\color{red}{2,\,-1,\,2,\,3},\,6,\,23,\,62,\,179,\,522,\,1503,\,4346,\,12563,\,\cdots \\ \cdots,\,36295,\,12558,\,4342,\,1507,\,519,\,178,\,66,\,19,\,7,\,\color{red}{6,\,-2,\,3,\,7},\,10,\,42,\,115,\,327,\,958,\,2758,\,7971,\,23047,\,\cdots \\ \cdots,\,28464,\,9845,\,3405,\,1184,\,404,\,141,\,53,\,12,\,8,\,\color{red}{5,\,-3,\,8,\,12},\,29,\,101,\,276,\,800,\,2325,\,6701,\,19376,\,56004,\,\cdots \\ \cdots,\,39695,\,13730,\,4763,\,1638,\,567,\,206,\,59,\,26,\,\color{red}{15,\,-6,\,11,\,14},\,23,\,102,\,267,\,770,\,2255,\,6482,\,18747,\,54198,\,156599,\,\cdots ⋯,12563,4346,1503,522,179,62,23,6,3,2,−1,2,3,6,23,62,179,522,1503,4346,12563,⋯⋯,36295,12558,4342,1507,519,178,66,19,7,6,−2,3,7,10,42,115,327,958,2758,7971,23047,⋯⋯,28464,9845,3405,1184,404,141,53,12,8,5,−3,8,12,29,101,276,800,2325,6701,19376,56004,⋯⋯,39695,13730,4763,1638,567,206,59,26,15,−6,11,14,23,102,267,770,2255,6482,18747,54198,156599,⋯
有一种分数加法,它…可谓错得离谱:取两个分数,分子分母分别相加,得到结果。用特殊记号 ⊕ \oplus ⊕表示它,写成公式的话,长这样:
a b ⊕ c d = a + c b + d ( e . g . 1 2 ⊕ 2 3 = 3 5 ) \dfrac{a}{b} \oplus \dfrac{c}{d} = \dfrac{a+c}{b+d} \quad \left(\mathrm{e.g.}\;\; \dfrac{\color{blue}{1}}{\color{red}{2}} \oplus \dfrac{\color{blue}{2}}{\color{red}{3}} = \dfrac{\color{blue}{3}}{\color{red}{5}}\right) \\ ba⊕dc=b+da+c(e.g.21⊕32=53)
你大概觉得写这篇文章的人莫名其妙,堆砌几个八竿子打不着的概念,完全不知所云。
但是假如我说,上面这些东西都和四圆相切有关,你愿意继续阅读吗?
随后的内容会用到反演变换与笛卡尔定理,如果你对二者的概念和性质感到陌生,可以先看看此系列的前两篇文章:
进入正题前,再简单整理一下我们之前探索“四圆相切问题”时得到的重要结论:
阿波罗尼奥斯定理(Apollonius’ Theorem) 对于给定的三个两两相切(但不公切于一点)的圆C_1, C_2, C_3,恰好存在两个圆与C_1, C_2, C_3均相切。
笛卡尔定理(Descartes’ Theorem) 假设四个两两相切的圆C_1, C_2, C_3, C_4的有向曲率分别为k_1, k_2, k_3, k_4,则它们满足关系:(k_1 + k_2 + k_3 + k_4)^2 = 2(k_1^2 + k_2^2 + k_3^2 + k_4^2) \
反演变换保圆性的完整内容 反演变换中的广义圆(圆与直线)保持形状不变,反形的大小和位置也可以由若干已知量简单导出。
(接上篇)
费了大力气推导完笛卡尔定理,先休息一下,看三个例子。
四、阿波罗尼奥斯垫(Apollonian Gasket)
假定我们已经有三圆相切的图案,即三个圆的曲率
k
1
,
k
2
,
k
3
k_1,k_2,k_3
k1,k2,k3已知,带入笛卡尔定理:
(
k
1
+
k
2
+
k
3
+
k
4
)
2
=
2
(
k
1
2
+
k
2
2
+
k
3
2
+
k
4
2
)
(k_1 + k_2 + k_3 + k_4)^2 = 2(k_1^2 + k_2^2 + k_3^2 + k_4^2) \\
(k1+k2+k3+k4)2=2(k12+k22+k32+k42)
为了求出满足四圆相切的
k
4
k_4
k4 ,可以把上式整理一下:
k
4
2
−
[
2
(
k
1
+
k
2
+
k
3
)
]
k
4
+
[
2
(
k
1
2
+
k
2
2
+
k
3
2
)
−
(
k
1
+
k
2
+
k
3
)
2
]
=
0
k_4^2 - \left[2(k_1+k_2+k_3)\right] k_4 + \left[ 2(k_1^2 + k_2^2 + k_3^2) - (k_1+k_2+k_3)^2 \right] =0 \\
k42−[2(k1+k2+k3)]k4+[2(k12+k22+k32)−(k1+k2+k3)2]=0
它是一个关于
k
4
k_4
k4的一元二次方程,恰好有两个解,这与阿波罗尼奥斯定理的内容对应:有两个不同的圆能够将“三圆相切”补全为“四圆相切”。假设其中一个圆是 C_{4\text{-}1} ,那么四个圆 C_1,C_2,C_3,C_{4\text{-}1} 两两相切。
接下来从中取出三个圆,比如 C_2,C_3,C_{4\text{-}1} 。根据阿波罗尼奥斯定理,存在两个不同的圆与这三个圆相切,而其中一个我们已经知道了: C_1 ,另一个圆则是全新的,把它加入图案。
想象此过程无限执行下去:找出所有三圆相切的组合,对于每组中的三个圆来说,求出两个与它们都相切的第四个圆,并剔除我们已知的圆,把剩下的圆加入图案。最终得到的就是分形图案“阿波罗尼奥斯垫(Apollonian Gasket)”。下面是这类分形的构造过程演示,每一步中新加入的圆用黄色表示。简单来说,每次迭代都是在现有圆之间的空隙中嵌入另一个圆:
阿波罗尼奥斯垫的构造过程
https://www.zhihu.com/video/1216730289135042560
从任意一个三圆相切出发,都能构造出类似的分形。但是上面的例子还有一个特殊的地方:所有圆的曲率都是整数。乍一看可能让人感觉不可思议,但是了解笛卡尔定理之后,背后的原理其实格外简单。
假设四个圆 C_1,C_2,C_3,C_4 两两相切,并且它们的曲率 k_1,k_2,k_3,k_4 都是整数。现在从中选出三个圆,例如 C_1,C_2,C_3 ,找到两个与它们都相切的圆,那么它们的曲率都满足下面的方程:x^2 - \left[2(k_1+k_2+k_3)\right] x + \left[ 2(k_1^2 + k_2^2 + k_3^2) - (k_1+k_2+k_3)^2 \right] =0 \ 方程的根是多少呢?我们知道其中一个根必然是 k_4 ,这是已知圆 C_4 的曲率。根据韦达定理,另一个根就是 2(k_1+k_2+k_3)-k_4 ,这是未知圆的曲率。由于 k_1,k_2,k_3,k_4 都是整数,未知圆的曲率2(k_1+k_2+k_3)-k_4也是整数。因此,最初选择的四个圆都是整数曲率,那么构造分形时产生的新圆也必然是整数曲率!
现在的问题简单多了,只要找到“四个具有整数曲率又两两相切的圆”就行。巧合的是,例子实在是太丰富了:
(
−
1
+
2
+
2
+
3
)
2
=
2
[
(
−
1
)
2
+
2
2
+
2
2
+
3
2
]
(
−
2
+
3
+
6
+
7
)
2
=
2
[
(
−
2
)
2
+
3
2
+
6
2
+
7
2
]
(
−
3
+
5
+
8
+
12
)
2
=
2
[
(
−
3
)
2
+
5
2
+
8
2
+
1
2
2
]
(
−
6
+
11
+
14
+
15
)
2
=
2
[
(
−
6
)
2
+
1
1
2
+
1
4
2
+
1
5
2
]
⋮
(-1+2+2+3)^2 = 2\left[(-1)^2+2^2+2^2+3^2\right] \\ (-2+3+6+7)^2 = 2\left[(-2)^2+3^2+6^2+7^2\right] \\ (-3+5+8+12)^2 = 2\left[(-3)^2+5^2+8^2+12^2\right] \\ (-6+11+14+15)^2 = 2\left[(-6)^2+11^2+14^2+15^2\right] \\ \vdots
(−1+2+2+3)2=2[(−1)2+22+22+32](−2+3+6+7)2=2[(−2)2+32+62+72](−3+5+8+12)2=2[(−3)2+52+82+122](−6+11+14+15)2=2[(−6)2+112+142+152]⋮
这类特殊的阿波罗尼奥斯垫(Apollonian Gasket)有个名字,叫“Integral Apollonian Gasket”,其中的Integral指的就是分形中的圆具有整数曲率。