这篇文章是一款把约数、素数、孪生素数猜想、哥德巴赫猜想“可视化”的方法来看“变化”的填字游戏。
而这种转化为“变戏法”的过程所涉及的知识,只涉及初等数论的知识,如果有兴趣的读者不嫌麻烦,可以耐心地把其中的转化过程一一验证,如果没时间验证也没关系,那就跳过一些繁琐的证明过程,带着娱乐的心情,一起领略另外一种“数形结合”的妙趣。首先声明,我们的目的是把一些数论问题变得“好看”、“好玩”。即便把这些问题变成了小游戏一样的东西,问题的难度可能依然没有得到任何程度的降低(有可能变得更难)。如果你觉得真的变好玩了,不妨让更多的人看到这些玩法并一起玩,这会是件非常有趣的事情。
起航:做一张巨大的正整数表格
我们按下面的步骤,来做一张表格:
第1行,依次从左到右写出所有正整数1、2、3、……
第2行,还是依次从左到右写出所有正整数1、2、3,、……,不过每两个数字之间要间隔1个空格。
第3行,还是依次从左到右写出所有正整数1、2、3,、……,不过每两个数字之间要间隔2个空格。
……
第i行,依次从左到右写出所有正整数1、2、3,、……,不过每两个数字之间要间隔i-1个空格。
……
理论上,这是一个有无穷行和无穷列且大部分地方都是空格的大表格(无穷矩阵),不过我们可以截取它的一部分来说明一些问题。
我们稍微地归纳一下这个表格的填字规律,第i行第j列,即位置( i , j )的“填字”N( i , j )将是(0在表格中就用空格表示了)
事实: 位置( i , j )的填字不是空格的充要条件是,j-1 是 i 的倍数,即i是j-1的约数。
约数与质数“重定义”
我们知道,对于两个正整数来说,如果a是b的倍数,b就是a的约数。如果一个大于1正整数的约数只有1和它本身,我们就说这个数是素数,也叫质数。
然而,我们这里既然做了表格,目的就是要重新利用表格上语言来说,到底什么是约数。
观察下面表格的红色路径,它们都是从第1行的某个数字开始,向左下方一路斜着拉了条斜线拉到最左侧的那一列的1。比如我们图中的6, 11, 18。从6拉的路径里,除了空格,经过的数字有6,3,2,1,而从18开始的,经过的有18,9,6,3,2,1。 恩,你发现了吗,经过的数字,正好是起始数字的约数。于是,我们说,在这样的表格里,约数可以这样表述:
约数的“跳格子”定义: 正整数n的约数就是“跳格子表”中,从第1行的n出发(即(1,n)位置出发),向左下行走到第1列的“1”的路径中经过的数字。
对于观察到的这个结果,我们给出一个简单的证明。我们来看,从(1,n)出发所经过的格子( 1+i , n-i ) , i = 0,1,2,3,…,n-1。根据前面的事实1,N( 1+i , n-i ) 是一个数字,当且仅当 n-i-1 = n-(1+i) 是 1+i的倍数,就是说n是1+i的倍数。而当n是1+i的倍数时,格子中的数字是N( 1+i , n-i ) = 1 + (n-i-1)/(1+i) = n/(1+i) 。这个是一个正整数且是n的约数。而i从0到n-1遍历的时候,1+i遍历了n所有可能的约数,而且每个约数恰好出现一次。
有了这个结果,我们还可以“重新定义”素数:
素数的“跳格子”定义: 正整数n的约数就是“跳格子表”中,从第1行的n出发(即(1,n)位置出发),向左下行走到第1列的“1”路径中,除了路径的起点与终点,经过的全是空格。
上面图中的11便是其中的一个例子。
孪生素数猜想的玩法
如果两个(奇)素数之差是2,我们就说这两个素数是一对孪生素数。比如3和5、11和13,、17和19等等。直到2016年9月,发现的已知的最大的一对孪生素数是下面两个数,展开后,这两个数都有388342位,这里一定是写不下了的。
孪生素数猜想是说,有无穷多对孪生素数。那么在我们的表格中会怎么表述这个猜想呢?
我们从第一排的某个数字出发(即(1,n)位置出发),如果往右下一路斜走,踩过一路空格后,踩到3,而从左下一路斜走,一路空格走到1,那么这个n以及n-2都是素数。下图中的13就是这个情况。
证明这个的思路,也和前面一样,是一些简单的倍数、约数验证。从(1,n)位置向右下斜走n-3格,踩中的位置为N(1+n-3,n+n-3) = N(n-2,2n-3) = 1 + (2n -3 -1)/(n-2) = 3 。就是说从任何(1,n)出发,n-3格的时候踩中3是必然的 。 另外,因为是一路空格踩过来,所以 i = 1,2,...,n-4的时候,N(1+i,n+i)都是空格,也就是说n+i-1= (n-2) + (1+i)不是1+i的倍数,即n-2不是1+i的倍数。就是说2,3,...,n-3,都不是n-2的约数,从而n-2是素数。而n本身是素数是从(1,n)出发的左下斜线路径决定的。
于是我们有了,孪生素数猜想的“跳格子”表述:
孪生素数猜想的“跳格子”表述: 存在无穷多个n,使得从“跳格子表”中第一排的n位置出发,往右下一路斜走,踩过一路空格后,踩到3,而从左下一路斜走,踩过一路空格走到1。
还没玩够,马跳模式下的孪生素数猜想猜想
你下过中国象棋、国际象棋吗?如果下过,就会知道象棋中马的走法。俗话说“马走日”,意思马会形状如“日”字的一个角跳到对角线上的另外一个角。当然如果你不知道象棋而知道围棋,那么围棋中“小飞”的走下法和“马走日”的走法差不多都是我要表达的意思。
马跳可以横着跳,也可以竖着跳。横着跳的相当于跳了一个平躺的“日”的对角线,而竖着跳就是一个站立“日”。
下面我直接给出两个结论,然后简单的验证了其中一个。另外一个读者可以自己验证,都是简单的约数验证。
2n-1是素数,当且仅当,从第一排的n位置出发,往左下竖马跳,踩过一路空格,踩到1
2n-3是素数,当且仅当,从第一排的n位置出发,往右下竖马跳,踩过一路空格,踩到2。
当从(1,n)位置出发的时候,往左下竖马跳n-1步后踩到1是非常容易判定的。 由于一路踩过的都是空格,所以(1+2i, n-i )位置在1< i <n-1上都是空格,就是说n-i-1 不都不会是1+2i的倍数。因为1+2i是奇数,所以相当于是说 2(n - i - 1) = (2n-1)-(1+2i) 也不是1+2i的倍数,即2n-1不是不会是1+2i的倍数。这时1< 1+2i <2n-1 ,就是说奇数2n-1没有奇素因子。2n-1为素数。
2n-3的素数条件验证是相似的。
下图从10出发的两个方向的马跳,说明了19、17是一对孪生素数。
于是,我们有了第二种表述:
孪生素数猜想的“跳格子”第二表述: 存在无穷多个n,使得从“跳格子表”中第一排的n位置出发,往左下一路马跳,踩过一路空格后,踩到1,而从往右下一路马跳,踩过一路空格后,踩到2。
说好的歌德巴赫猜想呢?
这一部分,我们就会来实现这个猜想。玩之前我们会介绍一种“跳格子表”上的新走法——k级马跳,以及我们会换一个更大的棋盘来玩。
前面介绍的马跳的位置,其实是向横(竖)着移动一格,然后朝另外一个方向竖(横)着移动2格所得到的位置。如果我们把第二次的2格换成其他数字k,然后将这个新的走法称为k级马跳。
那么,前面的走法就成了k级马跳的特例。最早棋盘上的斜着走,就是1级马跳,而上一部分的默认马跳其实是2级马跳。
另外还有一种特殊情况,0级马跳,横着的0级马跳竖着直走,竖着的0级马跳是横着直走。
为了玩得开心,我们引入0和负数,把之前的表格向左边无限扩展,得到下面样子的表格。我们省略负号,把0和负数涂上绿色。这个表格是之前的升级版,我们叫做“跳格子表2”。
“跳格子表2”保留所有之前未升级版本表格的性质,比如N(i,j)的值,我们可以计算N(2,-1)=1+ (-1-1)/2 = 0, N(8,-63) = 1+ (-63-1)/8 = -7 , 以及 N(3, -6) = 空格。 因为-6-1 = -7 不是3的倍数。
现在我们的准备工作完毕,开始要说歌德巴赫猜想的玩法了。
歌德巴赫猜想是说,每个不小于6的偶数可以写成两个奇素数之和。
我们说一个不小于6的偶数2n,如果存在一个非负整数k,使得从第一行的n+1位置出发,向往右边一路横着进行k级马跳,踩过一路空格,最后踩到k+2,往左边一路进行k级马跳踩过一路空格,最后踩到2-k。 那么2n能写成两个素数的和。
我们来看看为什么。
从(1,n+1)往右横着k级马跳,跳n-k-1步踩到的点的值N(1+(n-k-1),n+1+k(n-k-1)) = N(n-k,1+(1+k)(n-k)) = 1 + (1+(1+k)(n-k)-1)/(n-k) = k+2 ,就是说n-k-1步后必然踩到k+2, 由于是一路空格踩过来,说明当1≤i≤n-k-2 的时候, 1+i都不是n-k的约数。即2,3,4,...,n-k-1 都不是n-k的约数。于是n-k是素数。
利用相同的办法可以验证,n+k也是素数。只需要验证向左边移动n+k-1步的情况。
相反,如果一个不小于6的偶数2n = p + q,其中p≤q是奇素数。那么我们令k = n-p = q-n。那么这个k对应的k级马跳就是符合游戏设定k级马跳。
那么这个时候,我们可以表述歌德巴赫猜想了。
歌德巴赫猜想的“跳格子2”表述: 对每个不小于4的正整数n,存在一个非负整数k,使得从“跳格子表2”中第一排的n位置出发,往右横着进行k级马跳,踩过一路空格后,踩到k+2,而往左横着进行k级马跳,踩过一路空格后,踩到2-k。
下面的例子是对从16可写成两素数之和的验证。这个时候n=8,n+1 = 9, 所以从第一行的9开始跳,k的取值是3,所有最终右边跳到k+2=5,左边跳到2-k = -1 ,于是n+k = 8+3 = 11, n-k = 8-3 = 5, 16 = 11 + 5 ,16写成了5和11两个素数和。
注意,k=0 的特殊情况是这样的: 从n+1一直直线往下走,踩过一路空格踩到2。比如上面图从4出发向下走的黄色部分,说明了6满足哥德巴赫猜想。
谁发现(发明)的这个游戏?
好的,我们把孪生素数猜想和歌德巴赫猜想都在一个有趣的表格上重新实现了。那么这个游戏是谁发明的呢。
发明这个游戏的人叫Cloitre,是一位法国的数学的业余爱好者。他把他的这个发现写成的论文,可以在 看到。我们把他的玩法优化,并处理完几个小错误之后呈现给了大家。这个游戏不是他在数学上唯一的发现。Cloitre的很多发现并不逊色于在大学任教的数学专业人士,。比如2004年,他发现了ζ(2) = 1 + 1/4 + 1/9 + ... + 1/n² + ... =π²/6 的一个极其简单,但之前无人发现的公式,这个公式被收录在WolframMathWorld的词条中。
一些专业的数学教授也乐意和Cloitre合作,Cloitre也乐于在网上分享他的数学上点点滴滴。著名数列百科网站OEIS有Cloitre的4000多条贡献,一些数列中隐含的问题也激发了一些专业人士的研究兴趣。
所以,业余人士做的数学,也会被人叫好,也是会被人们承认的。这个时候,专业人士也不会叫你“民科”,当然——前提是你的研究是对的。