利用模n同余类乘群初探素数的分布规律
利用模n同余类乘群初探素数的分布规律
由模 n 同余类集合构成的 n 阶加群
按模 n 同余分类,整数 Z 被分为 n 个子集,即 [1]n、[2]n、...、[n]n,简记为 [1]、[2]、...、[n]。 Zn = {[1], [2], ..., [n]} 称为模 n 同余类集合。易知 Zn 是以 [n] 为单位元(零元)的 n 阶加群.
以 Z8 为例,[1] + [7] = [8],即 [1] 和 [7] 互为逆元(负元),同样互为逆元的还有 [2] 和 [6]、[3] 和 [5];[4] + [4] = [8],即 [4] 的逆元是自身,易知 {[8], [4]} 是 Z8 的唯一 2 阶真子群,且为正规子群,Z8 关于子群 {[8], [4]} 的陪集分解也是唯一的,即:
Z8 = {[8], [4]} ∪ {[1], [5]} ∪ {[2], [6]} ∪ {[3], [7]}
同样 {[8], [4], [2], [6]} 是 Z8 的唯一 4 阶真子群,且为正规子群,Z8 关于该子群的陪集分解也是唯一的,即:
Z8 = {[8], [4], [2], [6]} ∪ {[1], [5], [3], [7]}
模 n 同余类乘群
当 n 不为 1 时,Zn 不能构成乘群,这是因为 [1] 成了单位元,而零元 [n] 没有逆元,即 [n]·[x] = [1] 无解.
模 n 同余类乘群 Z'n 是 Zn 的子集,其定义为:
Z'n = {[k] ∈ Zn | 1 ≤ k ≤ n, gcd(k, n) = 1}
考察 Z'24
由欧拉函数公式可知,|Z'24| = φ(24) = φ(3)·φ(23) = 2·(23 - 22) = 8,由定义可以具体列出 Z'24,即:
Z'24 = {[1], [5], [7], [11], [13], [17], [19], [23]}
容易发现其中的同余类的常规代表数中,除了 1 之外都是素数,且 24 的素因数只有 2 和 3,这实际上提供了一种求区间 [1, 24] 内有多少个素数的可行方法.
记 区间 [m, n] 内的素数个数为 S(m, n),因为和 24 互素的最小素数为 5,而 5×5 > 24,所以
S(1, 24) = φ(24) - 1 + 2 = 9
考察 Z'48 和 Z'96
Z'48 中有 φ(48) = φ(3)·φ(24) = 2·(24 - 23) = 16 个同余类,且其常规代表数中非素数有 1、5×5、5×7,共计 3 个,于是
S(1, 48) = φ(48) - 3 + 2 = 15
Z'96 中有 φ(96) = 32 个同余类,且其常规代表数中非素数有 ,即 1、5×5、5×7、7×7、5×11、5×13、7×11、7×13、5×17,共计 9 个,于是
S(1, 96) = φ(96) - 8 + 2 = 25
归纳与分析
由上面考察的 n = 24, 48, 96 三种情形,便得到了两组等长区间的对比数据:
9 = S(1, 24) > S(25, 48) = S(1, 48) - S(1, 24) = 15 - 9 = 6
15 = S(1, 48) > S(49, 96) = 25 - 15 = 10
不难发现这一类情形的一般形式为:
n = 3·2k,k ≥ 1 (I)
此时有 φ(n) = 2k
k = 1 时,n = 6,Z'6 = {[1], [5]}
k = 2 时,n = 12,Z'12 = {[1], [5], [7], [11]}
上面具体考察的分别为 k = 3, 4, 5 的情形。
一般地,由 φ(3·2k) = 2k 及 [1] 是同余类乘群的单位元以及 2 和 3 为素数,可以给出区间 [1, 3·2k] 内素数个数的一个上界代数式,即
S(1, 3·2k) ≤ 2k + 1,k ≥ 1 ①
由上面的结果,可知当 k = 1, 2, 3 时 ① 取等号。但随着 k 值增大,Z'n 的常规代表数中就会有越来越多的合数,导致 S(1, 3·2k) 与 2k + 1 的差距越来越大,即总体趋势上素数分布是越来越稀疏的.
当 n 较大时,由 ① 给出的上界大约为 n/3. 可以对 (I) 加以改进,比如取:
n = 7·5·3·2k,k ≥ 1 (II)
此时有 φ(n) = 6·4·2k,进而可知
S(1, 7·5·3·2k) ≤ 6·4·2k + 3,k ≥ 1 ②
当 n 较大时,由 ② 给出的上界大约为 8n/35。
在 (II) 中取 k = 1,即有 n = 7·5·3·2 = 210,利用上面的方法来求一下 S(1, 210) 的准确值:
φ(210) = 6·4·2·1 = 48,与 210 互素且小于 210 的非素数有 1、11·11=121、11·13=143、13·13=169、11·17=187、11·19=209,共计 6 个,于是
S(1, 210) = 48 - 6 + 4 = 46
这与上面求 S(1, 96) 的计算量差不多. 不过当 n 大到一定程度(比如 n ≥ 10000),求 S(1, n) 的计算量不可避免会变得相当大.
考察 Z'24 的子群
Z'24 = {[1], [5], [7], [11], [13], [17], [19], [23]}
由 5·5 = 25 = 24 + 1 ≡ 1 (mod 24),知 [5]·[5] = [1],于是 {[1], [5]} 是 Z'24 的一个 2 阶子群. 同样,由
7·7 = 49 = 24·2 + 1
11·11 = 121 = 24·5 + 1
13·13 = 169 = 24·7 + 1
17·17 = 289 = 24·12 + 1
19·19 = 361 = 24·15 + 1
23·23 = 528 = 24·22 + 1
可知,Z'24 中每个非单位元都和 [1] 构成 Z'24 的一个 2 阶子群. 方便起见,把这些 2 阶子群分别记为 H5、H7、H11、H13、H17、H19、H23.
用 H5 可给出 Z'24 的一个陪集分解,即:
Z'24 = {[1], [5]} ∪ {[7], [11]} ∪ {[13], [17]} ∪ {[19], [23]}
这个分解里蕴含着素数的局部分布规律,用如下的矩阵表示更加直观:
1 5
7 11 (U)
13 17 (V)
19 23
从单行看,右边的数是左边的数加 4;从单列看,下面的数是上一行的数加 6. 就是说,从素数 5 开始,重复作加 2 和加 4 运算,每次加法运算就得到下一个素数,这个规律到 23 之后就打破了,因为 23 + 2 = 25 是合数.
同样,用 H7 也可给出 Z'24 的一个陪集分解,即:
Z'24 = {[1], [7]} ∪ {[5], [11]} ∪ {[13], [19]} ∪ {[17], [23]}
对应的分解矩阵为:
1 7
5 11 (tU)
13 19 (tV)
17 23
如上面的桃色和梅色高亮所示,两种分解的矩阵内部的两个 2 阶方阵分别都是互为转置关系.
用 H11 给出 Z'24 的一个陪集分解为:
Z'24 = {[1], [11]} ∪ {[5], [7]} ∪ {[13], [23]} ∪ {[17], [19]}
对应的分解矩阵为:
1 11
5 7 (P)
13 23 (Q)
17 19
这里的 P 和 Q,实际上就是 tU 和 tV 的第二列的两个元素分别换位而得.
用 H13 给出 Z'24 的一个陪集分解为:
Z'24 = {[1], [13]} ∪ {[5], [17]} ∪ {[7], [19]} ∪ {[11], [23]}
对应的分解矩阵为:
1 13
5 17 (M)
7 19 (N)
11 23
用 H17 给出 Z'24 的一个陪集分解为:
Z'24 = {[1], [17]} ∪ {[5], [13]} ∪ {[7], [23]} ∪ {[11], [19]}
对应的分解矩阵为:
1 17
5 13 (R)
7 23 (T)
11 19
这里的 R 和 T,实际上就是 M 和 N 的第二列的两个元素分别换位而得.
用 H19 给出 Z'24 的一个陪集分解为:
Z'24 = {[1], [19]} ∪ {[5], [23]} ∪ {[7], [13]} ∪ {[11], [17]}
对应的分解矩阵为:
1 19
5 23 (A)
7 13 (B)
11 17
用 H23 给出 Z'24 的一个陪集分解为:
Z'24 = {[1], [23]} ∪ {[5], [19]} ∪ {[7], [17]} ∪ {[11], [13]}
对应的分解矩阵为:
1 23
5 19 (C)
7 17 (D)
11 13
这里的 C 和 D,实际上就是 A 和 B 的第二列的两个元素分别换位而得.
容易验证,上述各个分解矩阵里的第一行加上其余任意一行即构成 Z'24 的一个 4 阶子群,一共有 7 个,即
{[1], [5], [7], [11]},{[1], [5], [13], [17]},{[1], [5], [19], [23]}
{[1], [7], [13], [19]},{[1], [7], [17], [23]}
{[1], [11], [13], [23]},{[1], [11], [17], [19]}
考察 Z'48 的子群
由定义,容易知道:
Z'48 = {[1], [5], [7], [11], [13], [17], [19], [23], [25], [29], [31], [35], [37], [41], [43], [47]}
48 的倍数有 48、96、144、192、240、288、336、384、432、480 等.
Z'48 中满足 [x]·[x] = 1 的有 [7]、[17]、[23]、[25]、[31]、[41]、[47],共 7 个,即 Z'48 有 7 个2 阶子群.
用 {[1], [7]} 给出 Z'48 的一个陪集分解为:
Z'48 = {[1], [7]} ∪ {[5], [35]} ∪ {[11], [29]} ∪ {[13], [43]} ∪ {[17], [23]} ∪ {[19], [37]} ∪ {[25], [31]} ∪ {[41], [47]}
对应的分解矩阵的转置矩阵为:
1 5 11 13 17 19 25 41
7 35 29 43 23 37 31 47
从这里看,4 到 48 之间的素数不像前面发现的 4 到 24 之间的素数那样有着清晰可见的分布规律.