原发于果壳 Today I Learned 小组。后面补充的部分来自我在知乎的一个回答。
希望有一天能支持 LaTeX。
学过数论的应该都知道勒让德符号。对于一个整数 a 和一个素数 p ,勒让德符号 (a|p) 定义为:如果 a≡0 (mod p),则 (a|p)=0;否则,如果存在一个整数 x 使得 x^2≡a (mod p),则 (a|p)=1;否则 (a|p)=-1。总之,就是看 a 是不是与某个数的的平方模p同余。勒让德符号有很多有趣的性质,在数论里十分有用。
勒让德符号中的 p 只能是素数。雅克比把它推广了一下。对于一个正奇数 m,如果它的素因数分解是 m = p1 * p2 * … * ps,那么定义雅克比符号 (n/m) = (n|p1) * (n|p2) * … * (n|ps),其中右边那一串就是勒让德符号。
雅克比符号中的m只能是正奇数。于是,克罗内克把它再推广了一下。他首先补上了 m = -1 和 m = 2 的情况。对于 m = -1 的情况,若 n < 0,则 (n/-1) = -1;若 n > 0,则 (n/-1) = 1;(0/-1) = 0。对于 m = 2 的情况,定义与勒让德符号不同,n 是偶数时,(n/2) = 0;n ≡ ±1 (mod 8) 时,(n/2) = 1;n ≡ ±3 (mod 8) 时,(n/2) = -1。然后,对于一个非 0 的整数 m,如果它的素因数分解是 m = u * p1 * p2 * … * ps,其中 u 是 ±1,那么定义 (n/m) = (n/u) * (n/p1) * (n/p2) * … * (n/ps)。最后,规定 (1/0) = (-1/0) = 1,对其它的 n 定义 (n/0) = 0。
这样,对所有整数 n、m 我们都定义了一个 (n/m)。这就是克罗内克符号。
这里我把这几个符号横着写了,而且为了区分,勒让德符号用了 |,雅克比和克罗内克符号用了 /。正式的写法应该是竖着写,比如说:
上面说了一大堆,都是些数论里的东西,好像与分形没有什么关系……
我们来看数列 (-1/n),这里的 n 取正整数。根据定义不难看出,这个数列里边的每一项只能是 1 或者 -1。这是在线整数数列百科(OEIS)里的数列 A034947,开头几项是: 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1 ……
然后,假设你是一只海龟,每次从数列中读取一项;如果是 1,就向左转 90°,向前爬一步;如果是 -1,就向右转 90°,向前爬一步。这样,画出来的图像是什么?
嗯,就是龙曲线。
再放一张彩图:
顺便说一句,我没学过 Logo 语言,这个海龟我是用 Mathematica 画的,参考了 KTurtle 的图标。
为什么这样能画出龙曲线呢?
我们先来看获得龙曲线的另一种方法。拿一根纸带,不断地对折,然后把每一处折痕按原来的凹凸展开成直角:
于是,折痕的凹凸就对应于前面海龟作图的左转右转。那么,折痕的规律是什么呢?
我们把凹记作 1,凸记作 -1。只折一次,得到的当然是:
1
折两次,就会在原来这个 1 的前面和后面各增加一个折痕,前面是 1,后面是 -1(加粗的是原有的折痕):
1, 1, -1
折三次,会在折两次的基础上,在最前面、最后面和相邻的两个折痕之间,都添上新的折痕。而且新添上的折痕会按 1、-1、1、-1……这样的规律排列。也就是说,相邻的两个新折痕的方向是相反的:
1, 1, -1, 1, 1, -1, -1
类似地,我们可以得到折四次的结果:
1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1
这里每一个数列都是后面一个数列的开头。如果我们无限地折下去的话,可以得到一个无限长的数列:
1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, …
于是我们不难得到这个数列的一个递推公式:
- a(2n) = a(n)
- a(4n+1) = 1
- a(4n+3) = -1
这和前面的克罗内克符号是什么关系呢?我们只需要看克罗内克符号的两个性质:
- 由克罗内克符号的定义,有 (-1/2) = 1。因此,(-1/n) = (-1/2n)。
- 数论里的一个重要的结论,有些书把它叫做二次互反律的补充律:对于奇素数 p,当 p≡1 (mod 4) 时,勒让德符号 (-1|p) = 1;当 p ≡ 3 (mod 4) 时,勒让德符号 (-1|p) = -1。
于是,(-1/n) 这个数列也满足同样的递推公式。也就是说,它们是同一个数列。