可以用克罗内克符号来画龙曲线

原发于果壳 Today I Learned 小组。后面补充的部分来自我在知乎的一个回答


学过数论的应该都知道勒让德符号。对于一个整数 $a$ 和一个素数 $p$ ,勒让德符号 $\left(\frac{a}{p}\right)$ 定义为:如果 $a \equiv 0 \pmod{p}$,则 $\left(\frac{a}{p}\right) = 0$;否则,如果存在一个整数 $x$ 使得 $x^2 \equiv a \pmod{p}$,则 $\left(\frac{a}{p}\right) = 1$;如果不存在这样的 $x$,则 $\left(\frac{a}{p}\right) = -1$。总之,就是看 $a$ 是不是与某个数的的平方模 $p$ 同余。勒让德符号有很多有趣的性质,在数论里十分有用。

勒让德符号中的 $p$ 只能是素数。雅克比把它推广了一下。对于一个正奇数 $m$,如果它的素因数分解是 $m = p_1 p_2 \cdots p_s$,那么定义雅克比符号 $\left(\frac{n}{m}\right) = \left(\frac{n}{p_1}\right) \left(\frac{n}{p_2}\right) \cdots \left(\frac{n}{p_s}\right)$,其中右边那一串就是勒让德符号。

雅克比符号中的 $m$ 只能是正奇数。于是,克罗内克把它再推广了一下。他首先补上了 $m = -1$ 和 $m = 2$ 的情况。对于 $m = -1$ 的情况,若 $n < 0$,则 $\left(\frac{n}{-1}\right) = -1$;若 $n > 0$,则 $\left(\frac{n}{-1}\right) = 1$;$\left(\frac{0}{-1}\right) = 0$。对于 $m = 2$ 的情况,定义与勒让德符号不同,$n$ 是偶数时,$\left(\frac{n}{2}\right) = 0$;$n \equiv \pm 1 \pmod{8}$ 时,$\left(\frac{n}{2}\right) = 1$;$n \equiv \pm 3 \pmod{8}$ 时,$\left(\frac{n}{2}\right) = -1$。然后,对于一个非 $0$ 的整数 $m$,如果它的素因数分解是 $m = u p_1 p_2 \cdots p_s$,其中 $u$ 是 $\pm 1$,那么定义 $\left(\frac{n}{m}\right) = \left(\frac{n}{u}\right) \left(\frac{n}{p_1}\right) \left(\frac{n}{p_2}\right) \cdots \left(\frac{n}{p_s}\right)$。最后,规定 $\left(\frac{1}{0}\right) = \left(\frac{-1}{0}\right) = 1$,对其它的 $n$ 定义 $\left(\frac{n}{0}\right) = 0$。

这样,对所有整数 $n$、$m$ 我们都定义了一个 $\left(\frac{n}{m}\right)$。这就是克罗内克符号。


上面说了一大堆,都是些数论里的东西,好像与分形没有什么关系……

我们来看数列 $\left(\frac{-1}{n}\right)$,这里的 $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$

这和前面的克罗内克符号是什么关系呢?我们只需要看克罗内克符号的两个性质:

  • 由克罗内克符号的定义,有 $\left(\frac{-1}{2}\right) = 1$。因此,$\left(\frac{-1}{2n}\right) = \left(\frac{-1}{2n}\right)$。
  • 数论里的一个重要的结论,有些书把它叫做二次互反律的补充律:对于奇素数 $p$,当 $p \equiv 1 \pmod{4}$ 时,勒让德符号 $\left(\frac{-1}{p}\right) = 1$;当 $p \equiv 3 \pmod{4}$ 时,勒让德符号 $\left(\frac{-1}{p}\right) = -1$。

于是,$\left(\frac{-1}{n}\right)$ 这个数列也满足同样的递推公式。也就是说,它们是同一个数列。