在§1(二)只是定义了 B 点列,现试构作。
已知 A 数列(以下简称 A )不含 1 及偶数,故其所有奇数项除了合数就是质数;唯如此, B 点列(以下简称 B )才非黑即白。如果能确定 A 的全部合数,剩下的必为质数;当然同时必须能找到其相应的 B 。问题是:用什么方法?
最可靠的方法是原始的“自己除自己”:
首先把 A 的所有项作为被除数。然后又从 A 的首项 3 起,依次逐个取出(直至尾项 2 l +1)作为除数,对 A 的所有项依次一一试除。当这个冗长的试除完毕, A 中的凡是能被整除的所有项,必为含某个或某些质因子的合数,在 B 上均表示为 1,除此之外应为质数则表示为 0。
为彰显规律,特把每一个除数对 A 所有项的试除(或 1 或 0)结果,单独记录在 B 页上,分列表达。能整除的为黑点,反之为白点。称这种仅由单个除数来确定 B 的部份黑点的点列,为 B 的子点列,记作 B k , k =1,2,3,…, l 。
首先以 A 首项( k =1, a 1 =3)为除数,对 A 所有项依次逐个试除,并单列记录于 B 页上即为 B 1 。列 B 1 于 A 下:
( b l )当且仅当 2 l +1能被 3 整除时,才为黑点。可见 B 1 第 1 点,它是由 a 1 ÷ a 1 = 1,对应在 B 上按质数定义为 0,以后各点也是由 3 依次除5、7、9、…的结果对应而来。其中 A 的 9,15,21,27,……各项,皆为能被 3 整除的合数,均相隔 3 项。相应的 B 1 上均相隔 3 点,上述合数与 B 1 的黑点对应。重写 B 1 :
形象地说: k = 1 为 B 1 的“起步点”,2 k + 1= 3 是 B 1 的“步长”。 B 1 是从 k =1 的“起步点”出发,以 2 k + 1=3 的“步长”,自左至右“踩”过去,一步一个黑点,凡是被“踩”着的点均为 B 1 黑点。当然,其实不过就是自 k = 1 起,每隔 3 点即一个黑点而已。
再以 A 的次项( k = 2, a 2 =5)为除数,对 A 所有项进行试除,单列对应在 B 页上就是 B 2 。见下:
则称: B 2 是从起步点 k =2 出发,以 2 k + 1=5 为步长,自左至右“踩”过去,一步一个黑点,凡是被“踩”着的点均为 B 2 黑点。当然,即为自 k = 2 起,每隔 5 点即一个黑点。
……
【证明】 设 A 的某项序号为 k ,相应 B k 的某点序号亦然。
那末这些每隔 2 k +1的项(点)序号为 k + n (2 k +1), n 为正整数。它们在 A 上的数值为:
则 A 的项为合数,而 B k 的点就为黑点。(证毕)
因为 A 有 l 项,所以理论上就有 l 个除数,那么 B 有 l 个子点列。如果按规则叠合 l 个 B 的子点列,就构作了 B 。
为叙述方便,以下称 k 为 B k 的起步点,2 k +1为其步长。
虽然理论上已初构了 B ,但还须说明:
①已知 B 由众多子点列叠合而成,依据叠合规则,显然凡子点列 B k 的黑点必为 B 的黑点,而 B k 的白点未必为 B 的白点。
②凡子点列的起步点,在其自身子点列上应为“白点”。即:对于 k ,在 B k 上应为“白点”。问题来了:
因子点列起步点 k 相应的奇数值,即为步长2 k +1。比如 B 4 是以 k =4为起步点,步长 a 4 = 9 的子点列。 a 4 = 9 是合数, k = 4 明明是黑点,怎么应为“白点”呢?
因为 B 4 是一个以 a 4 为唯一除数因子的子点列,它的第 4 点,是以 a 4 ÷ a 4 = 1,记录在 B 上的。按质数定义故为“0”。之后才是以 a 4 为步长的每步一个黑点。
③由此推论:凡起步点为黑点的子点列,对于 B 的构作,是“不起作用的多余的子点列”。
以 B 4 与 B 1 为例:
可见, B 4 上包括起步点在内,凡属 B 4 黑点的序号 13、22、31…,全部已“落”入 B 1 的黑点中。其算术含义:是 B 4 的起步点所对应的奇数值即或步长皆为 a 4 = 9,均含 B 1 的步长、即质数因子 3。
所以说:当某一子点列的起步点为黑点,则它起步点的奇数值或步长,就必含较小的子点列步长质因子。在构作 B 时,是不起作用的多余的子点列。
④在构作 B 时定义“不起作用的多余的子点列”,为 无效点列 。既为无效点列,在 B 的构作时就可以删除掉。
不过,远非只有起步点为黑点的子点列才是无效点列。有些起步点为白点的子点列,也可能是无效点列。详情容后细述。
⑤为叙述方便,把“ B 4 的黑点全部‘落’入 B 1 的黑点中”的事实,解读为: B 1能全覆盖 B 4 ,或 B 4 被 B 1 全覆盖。这里引入了 全覆盖 的概念。例如:
如果甲点列能全覆盖乙点列,当甲存在白点则乙必亦然;若乙又为子点列,则乙必为无效点列,等等。
显然全覆盖的前提:相关的点列也须等长。
假若有一台虚拟的,类似于“图灵机”那样的“步长机”来构作 B 点列,真的是简单很多。设该步长机有:
⑴一条分成 l 个格子的有限长的纸带,格子从左至右依次编号 1,2,3,…, l ; l ∈ N 。
⑵一个可沿纸带左右移动的读写头:向右逐格辨识,可对格子涂黑或不涂黑;而向左移动时,仅为快返(不涂黑)。
⑶一套控制规则:读写头以 k =1 为起步点,2 k +1 为步长,从左向右“走”过去,每一步“踩着”一格涂黑。当读写头移出纸带时,则向左快返,并以(下一个) k +1 为起步点,按规则继续工作,直至当 l +1 为起步点时,因纸带上没有这个点,自动停机。
结果即为一条黑白相间的表示 B 点列的纸带。若把这条纸带旋转180°,就变为表示 B 点列的纸带了。