|
本帖最后由 愚工688 于 2015-10-28 06:27 编辑
《大于5的偶数分成两个素数的全部分法数量与计算》的方法
任意大于5的偶数都能分成两个素数。这个命题的证明即是歌德巴赫猜想。
要证明歌德巴赫猜想,则必须搞明白偶数分成两个素数的分法数量的变化是否具有规律性。
本文只讲述偶数分成两个素数的分法,即通常大家所谓的“1+1”这个歌德巴赫猜想的实际素对问题。
把任意一个大于5的偶数M分成两个整数,可以用A-x 与A+x 的模式来表达(A=M/2)。在这个模式下,A-x与A+x是否同时成为素数只与变量x的值有关,只取决于x与偶数半值A之间的对应关系。
依据这种对应关系,我们可以轻易的得到:
1.偶数M分成两个素数A-x与A+x的全部的x值;
2.用一个表达式来对x值的数量进行近似的计算。
一)一个偶数分成两个素数的分法数量可以看作一个概率问题的数学原理
判断偶数M所分成的A-x与A+x两个数是否都是素数,依据艾拉托尼筛法,可有如下2个情况:
条件a :A-x与A+x 两个数同时不能够被≤r的所有素数整除时,两个数都是素数; [r为≤√(M-2)的最大素数, 下同。]
条件b:A+x不能够被≤r的所有素数整除,而A-x等于其中某个素数,两个数都是素数;
若把x值的取值范围[0,A-3]里面符合条件a的x值的个数记为S1(m),符合条件b的x值的个数记为S2(m),由上述的两个条件,即可得到偶数M分成两个素数的全部分法数量 S(m),有
S(m)=S1(m)+S2(m) .---------(式1)
对于把偶数M分成的两个素数A-x与A+x的条件a,可看成变量x符合某种由偶数半值A所限定条件的数,其在自然数区间[0,A-3] 中的分布规律,可归纳为一个概率问题:
除以素数2,3,…,n,…,r时余数同时满足不等于j2、j3及(3-j3)、…、jn及(n-jn)、…、Ir及(r -jr)的数的发生概率问题,这里的j2,j3,…,jn,…,jr系A除以素数2,3,…,n,…,r时的余数。
我们知道,对于一个自然数区域里面的数,
分别除以2、3以及其它素数5,…,r 时得到的余数都是以该被除素数的值为周期循环变化,而偶数数列、奇数数列除以2以外的其它素数3,5,…,r 时得到的余数仍然是以该被除的素数值为周期循环变化。这反映了自然数除以不同素数得到的余数具有互相独立的特性。
由于符合条件a的x值,就是除以素数2,3,…,r时余数同时满足不等于j2、j3及(3-j3)、j5及(5-j5)、…、jr及(r -jr)的数。
显然在x取值的自然数区间中,
除以2时,余数满足不等于j2 的数的发生概率为1/2;
除以3时,余数满足不等于j3 及(3-j3 )的数的发生概率为(3-2)/3,(j3≠0时);或发生概率为(3-1)/3,(j3=0时);
除以5时,余数满足不等于j5 及(5-j5 )的数的发生概率为(5-2)/5,(j5≠0时);或发生概率为(5-1)/5,(j=0时);
…
除以n时,余数满足不等于jn 及(n-jn)的数的发生概率为(n-2)/n,(jn≠0时);或发生概率为(n-1)/n,(jn=0时);
…
除以r时,余数满足不等于jr 及(r-jr)的数的发生概率为(r-2)/r,(jr≠0时);或发生概率为(r-1)/r,(jr=0时);
因此依据概率的独立事件的乘法原理,符合条件a:
除以素数2,3,…,n,…,r时余数同时满足不等于j2、j3及(3-j3)、j5及(5-j5)、…、jr及(r -jr)的x值的分布概率P(m) 有
P(m)=P(2·3·…·n·…*r)
=P(2)P(3)…P(n)…P(r) . -----------{式2}
故在[0,A-3] 中的这个自然数区域中使偶数M分成两个符合条件a的素数的x值数量的概率计算值Sp(m),有:
Sp(m)=(A-2)P(m)
= (A-2) P(2·3·…·n·…·r)
=(A-2)*P(2)P(3)…P(n)…P(r)
=(A-2)*(1/2)*f(3)*…*f(n)*…*f(r). -----------{式3}
式中:3≤ n≤r;n是素数。f(n)=(n-1)/n, [In=0时];或f(n)=(n-2)/n, [jn>0时] 。jn系A除以n时的余数。
实际偶数的素对数的计算可以表明,这种概率计算的方法不仅计算方法简单,比拉曼纽扬系数C(N)的计算容易,而且概率计算值与实际真值的相对误差也比哈代公式小得多。
实例1:
M= 120 ,A= 60 , ≤√(M-2)的所有素数为2,3,5,7 , A除以素数2,3,5,7的余数分别是j2=0,j3=0,j5=0,j7=4;在[0,57]区间里面同时满足:x除以2的余数≠0、x除以3的余数≠0、x除以5的余数≠0、x除以7的余数≠4与3的x值
实际有 x= : 1 , 7, 13 , 19 , 23 , 29 , 37 , 41 ,43 , 47 , 49 ,( 53 ) ——括号内是S2(m)的值,下同;
代入 M= (A-x )+( A+x ) 的模式,得到120的全部素对: 59 + 61 ,53 + 67,47 + 73, 41 + 79 ,37 + 83 ,31 + 89 ,23 + 97 ,19 + 101 ,17 + 103 ,13 + 107 ,11 + 109 ,7 + 113.
M=120 ,S(m)= 12 ,S1(m)= 11 , Sp(m)= 11.05 ,δ1(m)= 0 ,δ(m)= -0.079 ,K(m)= 2.67 , r= 7
而x值的概率计算数量Sp( 120)的计算式子与相对误差δ(m)的计算式子分别为:
Sp( 120)=[( 120/2- 2)/2]*( 2/ 3)*( 4/ 5)*( 5/ 7)= 11.05
δ(120)=(11.05-12)/12=-0.95/12 = -0.079
显然,理论上用同样的方法,我们可以求得任意大的偶数M分成两个素数的x值的概率计算值Sp(m)以及实际上的素对数量的各个有关数值。
下面我附上求偶数分成两个素数的全部分法以及数量计算公式、计算的相对误差的有关计算机程序,使得大家都能够轻易的得出需求偶数M分成分成两个素数的真实的情况。
这个程序区别于其他网友所用的偶数素对筛选程序(比如:用素数表分别筛选A-x与A+x的方法)的是:它是通过筛选符合条件的中间变量x,而变量x则使得偶数M分成两个数A-x与A+x成为素数对。这样的方法,也避免了所谓的“殆素数”的产生。并且依据概率的乘法定理可以对变量x值的数量进行概率计算,并且对概率计算的相对误差作了计算,有利于对误差情况进行进一步的分析。
这个程序对于一万左右的偶数,计算时间在1秒钟以下,可以说即时即得;但是对于一千万左右的单个偶数,计算时间在半小时左右(我用的奔腾4电脑),是比较缓慢的,故不适合计算百万以上的大批量的偶数。
二)《 偶数分成两个素数的全部分法与素对数量的概率计算》的Basic程序
(程序的18语句提供了计算多个偶数的范围,更改数值可以得到不同大小范围内的全部偶数有关数据。DATA素数库的最大素数p限制了可以处理的最大偶数,即输入的T+n 的范围为p^2 +1,若需超出,请扩充DATA素数库以及12语句的数值。)
输出数据说明:
S(m) --M 分成两个素数的全部分法数量;
S1(m)--M分成两个符合条件a的“大于根号(M-2)的素数”的分法数量;
Sp(m)--素对数量的概率计算值;
δ(m):即E(m) --Sp(m)与S(m)之间的相对误差;E(m) =[Sp(m)-S(m)]/S(m)。
δ1(m): 即E1(m) --Sp(m)与S1(m)之间的相对误差;E1(m) =[Sp(m)-S1(m)]/S1(m)。
K(m)--素数因子系数 ,由偶数M所含的奇素数因子所决定的。
r --小于或等于根号(M-2)的最大素数;
程序文本
1 PRINT "This is a Basic Program for Goldbach conjecture ."
5 REM The all methods are to be divided an Even number-M into two Prime numbers.
6 OPEN "Su Dui.txt" FOR OUTPUT AS #1
10 INPUT "Input an even number T .If T<6 then end. T="; T
12 IF T> 1018000 THEN GOTO 396
15 IF T < 6 THEN GOTO 95
18 FOR M=T TO T+10 STEP 2
20 A = M / 2: C = A - 3: D = (A - 2) / 2
11 M$ = STR$(M): A$ = STR$(A): D$ = "[(" + M$ + "/2- 2)/2]": R$ = ""
22 S1 = 0: S2 = 0: R1 = 2: K = 1
30 IF INT(A / 2) = A / 2 THEN B = 1: ELSE B = 0
35 FOR X = B TO C STEP 2
40 GOSUB 200
50 NEXT X
60 GOSUB 300
65 S = S1 + S2: E1 = (D - S1) / S1: E = (D - S) / S
70 D = INT(100 * D + .5) / 100: E1 = INT(1000 * E1 + .5) / 1000: E = INT(1000 * E + .5) / 1000
72 K = INT(100 * K + .5) / 100
80 PRINT TAB(0); "M="; M; TAB(10); "S(m)="; S; TAB(21); "S1(m)="; S1; TAB(32); "Sp(m)="; D; TAB(47); "E(m)="; E; TAB(59); "E1(m)="; E1; TAB(72); "K(m)="; K; TAB(88); "r(m)="; R1
81 PRINT #1,
82 PRINT #1, "M="; M; ", S(m)="; S; ", S1(m)="; S1; ",Sp(m)≈ "; D; ",δ(m)≈ "; E; ",δ1(m)≈ "; E1; ",K(m)="; K; ",r="; R1
83 PRINT #1, "-- Sp("; M$; ")="; D$ + R$; "≈"; D
84 PRINT #1,
85 NEXT M
88 GOTO 10
95 END
200 READ R
210 IF SQR(M - 3) < R THEN 250
220 IF INT((A + X) / R) = (A + X) / R THEN 270
230 IF INT((A - X) / R) = (A - X) / R AND A - X > R THEN 270 ELSE 200
250 IF A - X >= R THEN S1 = S1 + 1: ELSE S2 = S2 + 1
260 PRINT #1, A - X; "+"; A + X; ",";
261 PRINT A - X; "+"; A + X;
270 RESTORE
280 RETURN
300 READ R
310 IF SQR(M - 3) < R THEN 340
315 R1 = R
316 r0$ = STR$(R): R1$ = STR$(R - 1): R2$ = STR$(R - 2)
318 IF INT(A / R) = A / R THEN R$ = R$ + "*(" + R1$ + "/" + r0$ + ")": ELSE R$ = R$ + "*(" + R2$ + "/" + r0$ + ")"
320 IF INT(A / R) = A / R THEN D = D * (R - 1) / R: ELSE D = D * (R - 2) / R
325 IF INT(A / R) = A / R THEN K = K * (R - 1) / (R - 2)
330 GOTO 300
340 RESTORE
350 RETURN
396 PRINT "T overflow data, please expand the prime database!"
397 GOTO 10
DATA 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83 , 89 , 97 , 101 , 103 , 107 , 109 , 113 , 127 , 131 , 137 , 139 , 149 , 151 , 157 , 163 , 167 , 173 , 179 , 181 , 191 , 193 , 197 , 199 , 211 , 223 , 227 , 229 , 233 , 239 , 241 , 251 , 257 , 263 , 269 , 271 , 277 , 281 , 283 , 293 , 307 , 311 , 313 , 317 , 331 , 337 , 347 , 349 , 353 , 359 , 367 , 373 , 379 , 383 , 389 , 397 , 401 , 409 , 419 , 421 , 431 , 433 , 439 , 443 , 449 , 457 , 461 , 463 , 467 , 479 , 487 , 491 , 499 , 503 , 509 , 521 , 523 , 541 , 547 , 557 , 563 , 569 , 571 , 577 , 587 , 593 , 599 , 601 , 607 , 613 , 617 , 619 , 631 , 641 , 643 , 647 , 653 , 659 , 661 , 673 , 677 , 683 , 691 , 701 , 709 , 719 , 727 , 733 , 739 , 743 , 751 , 757 , 761 , 769 , 773 , 787 , 797 , 809 , 811 , 821 , 823 , 827 , 829 , 839 , 853 , 857 , 859 , 863 , 877 , 881 , 883 , 887 , 907 , 911 , 919 , 929 , 937 , 941 , 947 , 953 , 967 , 971 , 977 , 983 , 991 , 997, 1009
三)概率计算值Sp(m)的相对误差δ(m)与分析
实际上我们求得任意偶数M分成两个素数的x值的概率计算值Sp(m),其与实际的值S(m)多数是不相等的,存在一定的偏差。对于这个偏差我们进行下面的分析讨论。
为表达出Sp(m)值与真值S1(m)之间的关系,引用相对误差δ1(m)来表达:
δ1(m)=[Sp(m) -S1(m)] / S1(m). --------{式4a}
即有: S1(m)=Sp(m)/ [1+δ1(m)]. --------{式5a}
由于符合条件b的使得A±x成为素对的x值的分布区间在整个取值区域[0,A-3]中的占比小于2/r,在偶数M趋大时其占比2/r会越来越小,故可以忽视比较大偶数的S2(m)的独立性把其合并于S1(m)中。
这样处理后,Sp(m)作为偶数M的全部素对数量S(m)的概率计算值,其与实际值的相对误差可以用δ(m)来表示:
δ(m)=[Sp(m)-S(m)]/S(m) .--------{式4}
就是有 S(m)=Sp(m)/[1+δ(m)] .--------{式5}
{式5}表达了偶数M的实际素对数量S(m)与概率计算值Sp(m)的相互关系。
对概率计算值Sp(m)的相对误差δ(m)的统计计算
上述我编写的Basic程序,可轻易地得到偶数M分成两个素数的全部分法及各个分法的数据S1(m)、S(m),概率计算值Sp(m)及相对误差δ1(m)、相对误差δ(m)。
在此程序基础上增加一个对相对误差进行统计计算的模块,即可以得出输入偶数区间内的全部偶数的概率计算的相对误差的统计计算结果。
分区对10万内的偶数的素对的概率计算值的相对误差δ(m)作统计计算,结果如下:
(μ-区间相对误差均值;σx-标准偏差)
M=[ 6 , 100 ] r= 7 n= 48 μ=-.2418 σχ= .2292 δ(min)=-.625 δ(max)= .3429
M=[ 6 , 1000 ] r= 31 n= 498 μ=-.1685 σχ= .1263 δ(min)=-.625 δ(max)= .3429
M=[ 6 , 10000 ] r= 97 n= 4998 μ=-.075 σχ= .0736 δ(min)=-.625 δ(max)= .3429
M=[ 10002 , 20000 ] r= 139 n= 5000 μ=-.0315 σχ= .0361 δ(min)=-.1603 δ(max)= .1017
M=[ 20002 , 30000 ] r= 173 n= 5000 μ=-.0100 σχ= .0288 δ(min)=-.1145 δ(max)= .1245
M=[ 30002 , 40000 ] r= 199 n= 5000 μ=-.0037 σχ= .0263 δ(min)=-.1034 δ(max)= .1101
M=[ 40002 , 50000 ] r= 223 n= 5000 μ= .005 σχ= .0253 δ(min)=-.1021 δ(max)= .1131
M=[ 50002 , 60000 ] r= 241 n= 5000 μ= .0082 σχ= .0219 δ(min)=-.0688 δ(max)= .1064
M=[ 60002 , 70000 ] r= 263 n= 5000 μ= .0139 σχ= .0213 δ(min)=-.0681 δ(max)= .0993
M=[ 80002 , 90000 ] r= 293 n= 5000 μ= .0129 σχ= .0196 δ(min)=-.0597 δ(max)= .0976
M=[ 90002 , 100000 ] r= 313 n= 5000 μ= .0218 σχ= .0174 δ(min)=-.038 δ(max)= .112
从上面的这些统计计算数据中,可看到:
①.在偶数最小的统计区间[ 6 , 100 ] 里,存在统计的相对误差δ(m)的最大值与最小值,说明小偶数时相对误差分布的离散性比较大些;平均值μ比较小(负值),这主要原因是小偶数时由于符合条件b的素数的x值并入的影响造成的;
②.在偶数趋大时,偶数的相对误差的δ(min)在增大,δ(max)在减小,即相对误差的分布范围在缩小;
③.标准偏差σx随偶数增大而逐渐变小,说明在大偶数的情况下,偶数素对的概率计算值的相对误差的变化是很小的;
④.平均误差值μ随偶数增大缓慢地由负转正值,但是都很小,可以看出概率计算值与实际值是比较接近的。
这些偶数素对数量计算的相对误差δ(m)的分布的变化特点对于我们更精确的计算大偶数的素对数量是非常有用的。
.
实际上,即使在小偶数的区域中,偶数的素对的计算值与实际值也是相当接近的,在偶数分成两个素数的相关的数据的折线图上面,可以清晰的看到计算值与实际值的同步变化的情况:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|