正文
记得小学一年级的时候,我从一本课外书中看到了一个好玩的数:142857。
大概是这个数,让我对数学的产生了兴趣。
据说这个数最早发现于埃及的金字塔内。它实在是太好玩了,因为它的 2~6 倍都是的它的重新排列:
- 142857*2=285714
- 142857*3=428571
- 142857*4=571428
- 142857*5=714285
- 142857*6=857142
而且还有更多的性质:
比如:14+28+57=99; 142+857=999 等等。
当然,最关键的是:142857*7=999999。
当时的我在想,这大概是最重要的一条性质,它是所有性质的源头。
很多年以后,我想起了这件往事,发现这个数有一个名字,叫做 “走马灯数”,类似于这样:
这种 “走马灯” 性质实在是让人惊奇。
【那么, 142857 为什么会具有这样神奇的性质? 是否还会有其他数具有这样的性质呢?】
我稍微思考了一下这个问题,结果意外地发现:它正是一个非常贴切的教材,可以让小白数学爱好者推开 初等数论 大门的一角。
实际上,要完整地理解这个问题的来龙去脉,对于初中数学水平的人,可能也只需要半个小时罢了~ 当然,需要 2 个很简单的前提条件:① 知道 质数(素数)的概念:只能被 1 和自身整除的数;也知道互质(最大公约数为1);② 会 竖式计算。
一、竖式计算的奥秘
既然我们已经知道 142857*7=999999,那么一定很容易联想到 1/7 会有 142857 的循环节。毕竟 1000000 除以 7 余 1 嘛!竖式计算告诉我们,产生循环几乎是显然的:
仔细观察一下竖式计算,我们会发现一个很有趣的现象:
前 6 次相减,余数分别 3、2、6、4、5、1,恰好遍历了比 7 小的 1~6,这就意味着,下一个余数无论是几,都必然会和前面的重复,从而必须产生循环。
这个现象揭示了一个简单的定理:
定理 1.1:1/n 的小数展开,其循环节长度不超过 n-1。
如果循环节恰好为 n-1 ,在竖式计算的每一步中,余数一定遍历了 1,2,…,n-1,那么显然,1/n, 2/n,…, (n-1)/n 的竖式计算,一定能和 1/n 的竖式计算中的某一步衔接起来,循环节会形成 “走马灯” 的效果。
反之,对于任意一个“走马灯数”,我们可以把它当做循环小数的循环节,而循环小数必然可以表示成分数 k/n,若循环节小于 n-1,那么余数必然不能遍历 1,2,…,n-1,那么 “走马灯” 的效果则不会出现。于是我们得到了另一个定理:
定理 1.2:对每一个 “走马灯数” ,都存在自然数 n,走马灯数为 1/n 的小数展开后的循环节,且这个循环节恰好有 n-1 位。
接下来,我们需要寻找满足条件的 n,初等数论 的大门将缓缓打开。
二、费马不只发现了“费马大定理”
在这一部分,我们需要接触 3 个初等数论的基础概念:
- 同余:若 a 除以 n 和 b 除以 n 的余数相同,则称 a 和 b 对模 n 同余,记作 (mod n);
- 欧拉函数:小于 n 的正整数中与 n 互质的数的数目,记为 ;
- 剩余系:对全体自然数,按照除以 n 的余数可以分成 n 类,每一类构成的集合叫做 剩余类;在每一个剩余类中取一个数,构成的集合叫做 完全剩余系;在每一个和 n 互质的剩余类中取一个数,构成的集合叫 简化剩余系。易见,一个模 n 的简化剩余系中有 个元素。
关于欧拉函数,举 2 个例子:
- 比如 6,在 1、2、3、4、5 中,只有 1 和 5 是和 6 互质的,所以 ;
- 对于任意质数 p,显然 1~ p-1 都和其互质,因此 。
于是我们很快可以得到一个定理:
定理 2.1(费马-欧拉定理):若 a 和 m 互质,则 (mod m)
这是第一个需要稍微思考一下的定理。但证明也并不复杂:
在 1~ m-1 中取一个模 m 的简化剩余系,从小到大排列为 ,任意两个数之间的差都小于 m-1,考虑每个数的 a 倍,由于 a 和 m 互质,显然有:
(mod m)
于是 也构成了模 m 的简化剩余系。
则有: (mod m)
那么:
和 m 互质,所以 ,证毕!
特别地,当 m 为质数的时候,结合欧拉函数的定义,我们得到了费马小定理:
定理 2.2(费马小定理):若 p 为质数,且 a 和 p 互质,则 (mod p)
费马大定理是我们耳熟能详的,但其实费马小定理也是初等数论中比较基本的定理哦!
三、OEIS- A001913
在费马-欧拉定理中,取 a=10,当 m 与 10 互质的时候,才有: (mod m),从而形成 纯循环小数。联想到竖式计算:
在 1/m 的计算过程中, 一定是循环节(但不一定是最短的),显然,当且仅当 m 为质数的时候,才可能有 。满足 “走马灯” 性质 m 至少是质数,且与 10 互质。
但 m 是质数并不是充分条件,如 m=3, ,而 (mod 3)。
于是我们提出了一个定义:设 m 是正整数,a 是整数,若 a 模 m 的阶(使得 (mod m)的最小正整数 k)等于 ,则称 a 为模 m 的一个 原根。
因此我们得到了最终的结果:
定理3: 对每一个 “走马灯数”,必然存在自然数p,走马灯数为 1/p 小数展开后的循环节,且 p 的充要条件是: ① p 是质数; ② p 与 10 互质; ③ 10 是模 p 的一个原根。
有一个收录了各种数列的网站叫 OEIS,它恰好收录了走马灯数相关的 p: A001913
与此同时,还给出了 “走马灯数” 数列:A180340
142857, 588235294117647, 52631578947368421, 434782608695652173913, 344827586206896551724137931, 212765957446808510638297872340425531914893617, 169491525423728813559322033898305084745762711864406779661
这便是后一个问题的答案啦。