专栏名称: 看!你身边有一只数学!
这里讲述潜伏在我们身旁的趣味数学
目录
相关文章推荐
福州日报  ·  又一起失联!23岁男子疑被骗出国 ·  2 天前  
芜湖道路运输服务  ·  各地加力“两新”政策 激发消费新活力 ·  2 天前  
芜湖道路运输服务  ·  各地加力“两新”政策 激发消费新活力 ·  2 天前  
荔枝新闻  ·  鹿晗工作室道歉!多平台账号被禁止关注 ·  4 天前  
荔枝新闻  ·  鹿晗工作室道歉!多平台账号被禁止关注 ·  4 天前  
西安头条  ·  鹿晗,突发!紧急致歉 ·  4 天前  
西安头条  ·  鹿晗,突发!紧急致歉 ·  4 天前  
燕梳楼  ·  到底谁骂谁? ·  4 天前  
燕梳楼  ·  到底谁骂谁? ·  4 天前  
51好读  ›  专栏  ›  看!你身边有一只数学!

“走马灯数” 142857 与 初等数论入门

看!你身边有一只数学!  · 知乎专栏  ·  · 2017-07-13 03:09

正文


记得小学一年级的时候,我从一本课外书中看到了一个好玩的数: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 个初等数论的基础概念:

  1. 同余:若 a 除以 n 和 b 除以 n 的余数相同,则称 a 和 b 对模 n 同余,记作 a \equiv b (mod n);
  2. 欧拉函数:小于 n 的正整数中与 n 互质的数的数目,记为 \phi(n)
  3. 剩余系:对全体自然数,按照除以 n 的余数可以分成 n 类,每一类构成的集合叫做 剩余类;在每一个剩余类中取一个数,构成的集合叫做 完全剩余系;在每一个和 n 互质的剩余类中取一个数,构成的集合叫 简化剩余系。易见,一个模 n 的简化剩余系中有 \phi(n) 个元素。

关于欧拉函数,举 2 个例子:

  1. 比如 6,在 1、2、3、4、5 中,只有 1 和 5 是和 6 互质的,所以 \phi(6)=2 ;
  2. 对于任意质数 p,显然 1~ p-1 都和其互质,因此 \phi(p)=p-1

于是我们很快可以得到一个定理:

定理 2.1(费马-欧拉定理):若 a 和 m 互质,则 a^{\phi(m)}\equiv 1 (mod m)


这是第一个需要稍微思考一下的定理。但证明也并不复杂:

在 1~ m-1 中取一个模 m 的简化剩余系,从小到大排列为 x_{1},x_{2},...,x_{\phi(m)} ,任意两个数之间的差都小于 m-1,考虑每个数的 a 倍,由于 a 和 m 互质,显然有:

ax_{i} \not \equiv ax_{j} (i \neq j) (mod m)

于是 ax_{1},ax_{2},...,ax_{\phi(m)} 也构成了模 m 的简化剩余系。

则有: x_{1}·x_{2}·...·x_{\phi(m)}\equiv ax_{1}·ax_{2}·...·ax_{\phi(m)} = a^{\phi(m)}x_{1}·x_{2}·...·x_{\phi(m)} (mod m)

那么: m| x_{1}·x_{2}·...·x_{\phi(m)}(a^{\phi(m)}-1)

x_{1}·x_{2}·...·x_{\phi(m)} 和 m 互质,所以 m|(a^{\phi(m)}-1) ,证毕!


特别地,当 m 为质数的时候,结合欧拉函数的定义,我们得到了费马小定理:

定理 2.2(费马小定理):若 p 为质数,且 a 和 p 互质,则 a^{p-1}\equiv 1 (mod p)


费马大定理是我们耳熟能详的,但其实费马小定理也是初等数论中比较基本的定理哦!


三、OEIS- A001913

在费马-欧拉定理中,取 a=10,当 m 与 10 互质的时候,才有: 10^{\phi(m)} \equiv 1 (mod m),从而形成 纯循环小数。联想到竖式计算:

在 1/m 的计算过程中, \phi(m) 一定是循环节(但不一定是最短的),显然,当且仅当 m 为质数的时候,才可能有 \phi(m)=m-1 。满足 “走马灯” 性质 m 至少是质数,且与 10 互质。

但 m 是质数并不是充分条件,如 m=3, \phi(3)=2 ,而 10^1\equiv 1 (mod 3)。

于是我们提出了一个定义:设 m 是正整数,a 是整数,若 a 模 m 的阶(使得 a^k \equiv 1 (mod m)的最小正整数 k)等于 \phi(m) ,则称 a 为模 m 的一个 原根

因此我们得到了最终的结果:

定理3: 对每一个 “走马灯数”,必然存在自然数p,走马灯数为 1/p 小数展开后的循环节,且 p 的充要条件是: ① p 是质数; ② p 与 10 互质; ③ 10 是模 p 的一个原根。


有一个收录了各种数列的网站叫 OEIS,它恰好收录了走马灯数相关的 p: A001913

与此同时,还给出了 “走马灯数” 数列:A180340

142857, 588235294117647, 52631578947368421, 434782608695652173913, 344827586206896551724137931, 212765957446808510638297872340425531914893617, 169491525423728813559322033898305084745762711864406779661


这便是后一个问题的答案啦。