| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10806 人关注过本帖
标题:优化程序或者从新编写求四生素数中项不能合成的偶数
只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE d:\等差四生素数\无偶最终结果表新总2单.DBF ALIAS 无偶总新2单
SELECT 2
USE d:\等差四生素数\无偶数统计表.DBF ALIAS 无偶统计
kssj=SECONDS()
SELECT 1
     For j=21 to 40
      @ 3,6 say j
      fw=j*210000
            SELECT 1
            GO 1
            COUNT ALL FOR 无偶<=fw TO tj
              SELECT  2  
              APPEND BLANK   
              REPLACE 范围 WITH fw
              REPLACE 统计 WITH tj
     ENDFOR
   
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2021-11-23 19:41
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
区段        范围        统计        各段个数        总区段
21        4410000        6627        6627        3
22        4620000        13006        6379        3
23        4830000        19228        6222        3
24        5040000        25308        6080        3
25        5250000        31317        6009        3
26        5460000        36962        5645        3
27        5670000        42338        5376        3
28        5880000        47563        5225        3
29        6090000        52760        5197        3
30        6300000        57836        5076        3
31        6510000        62452        4616        4
32        6720000        67189        4737        4
33        6930000        71729        4540        4
34        7140000        76136        4407        4
35        7350000        80575        4439        4
36        7560000        84821        4246        4
37        7770000        88946        4125        4
38        7980000        92999        4053        4
39        8190000        96851        3852        4
40        8400000        100841        3990        4
这是运行结果

素数问题的解决是我学习编程永恒的动力。
2021-11-23 19:42
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
总区段        统计2
3        57836
4        43005
正版书据

素数问题的解决是我学习编程永恒的动力。
2021-11-23 19:42
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE d:\等差四生素数\四中d30.DBF ALIAS 四中表
SELECT 2
USE d:\等差四生素数\各段四生素数个数5.DBF ALIAS 四生个数表5
SELECT 3
USE d:\等差四生素数\偶数表新.DBF ALIAS 偶数表新
SELECT 4
USE d:\等差四生素数\数据源表.dbf ALIAS 数据源A
SELECT 5
USE d:\等差四生素数\数据表a.dbf ALIAS 数据A
kssj=SECONDS()
bwjm="偶数周期表"
bwjmzj="偶数周期表子集"
 For i=122 TO 123
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
      && USE IN 3
      && USE d:\等差四生素数\偶数表新.DBF ALIAS 偶数表新
       SELECT 3
     
       DELETE ALL
       PACK
       wdz=bwjmzj+ALLTRIM(STR(i-1)) &&子集表
      
       SELECT 5
       DELETE ALL
       PACK
       INSERT INTO 数据A (数据1) SELECT 偶元+(i-2)*2100000 FROM 数据源A
       FOR j=1 TO INT(i/2)
        @ 15,22 say j
        SELECT  2     
        GO j
        zgs1=总个数
        fgs1=分个数
        SELECT  2
        GO i-j
        zgs2=总个数
        fgs2=分个数
           SELECT 1
           GO zgs1-fgs1+1
               FOR k1=1  TO  fgs1
               A=四中30
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=四中30
                 C=A+B
                 SELECT 3
                 APPEND BLANK   
                 REPLACE 偶数 WITH C   
                 SELECT 1
                 GO jl2+1
                 ENDFOR
               SELECT 1
               GO jl1+1
             ENDFOR   
          ENDFOR
       SELECT 3
       USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
       select * from 偶数表新.dbf DISTINCT INTO table d:\等差四生素数\&wd
       sele * from 数据A where 数据1 not in(sele 偶数 from &wd ) into table d:\等差四生素数\&wdz
       USE IN &wdz
      USE IN &wd
      
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
前三步,一步到位。

素数问题的解决是我学习编程永恒的动力。
2021-11-23 23:27
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
对于最密4生素数的中项和合成分布;等差四生素数d210中项和的分布;程序都没有问题,可是当处理等差四生素数d30时,却出现了怪异现象,偶数周期表中,指针停止了移动,说明没有满足条件的偶数使它移动,后来经过多方面的核对,才找到问题的症结,因为偶数周期表中,出现了异类偶数,即模7余1的偶数类,这在能合成的偶数中是没有的,所以遇到此类偶数,指针就永久的停止了,不在移动,造成所有的,都没合成方法,导致程序失败,没有获得正确的数据。归根到底是等差四生素数d30的中项52造成的,把它从中项中移去(即不让它参与运算),这才步入正规,又与前两类的四生素数一样了。

素数问题的解决是我学习编程永恒的动力。
2021-11-24 18:56
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 195楼 独木星空
有时遇到问题也是一种机遇,因为在你处理问题时,会去想解决方案,而在想出来的方案中,会使原来的程序得到改良和优化(因为你必须处理所遇见的问题)。

素数问题的解决是我学习编程永恒的动力。
2021-11-25 12:29
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE d:\等差四生素数\偶数周期表子集总表.DBF ALIAS 子集总表

kssj=SECONDS()

bwjmzj="偶数周期表子集"
 For i=122 TO 259
      @ 5,12 say i
       wdz=bwjmzj+ALLTRIM(STR(i)) &&子集表
     SELECT 1
     APPEND FROM d:\等差四生素数\&wdz
 ENDFOR
 
 =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")  
这是把所有表的记录追加到同一个表上的程序

素数问题的解决是我学习编程永恒的动力。
2021-11-25 13:59
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
大分区    统计
122    79
123    85
124    78
125    73
126    62
127    69
128    76
129    68
130    65
131    63
132    61
133    60
134    66
135    69
136    56
137    63
138    42
139    49
140    48
141    44
142    54
143    50
144    38
145    47
146    41
147    39
148    37
149    42
150    45
151    35
152    44
153    24
154    38
155    28
156    34
157    26
158    22
159    25
160    37
161    26
162    33
163    31
164    15
165    19
166    27
167    19
168    16
169    28
170    25
171    16
172    22
173    22
174    24
175    13
176    28
177    19
178    18
179    16
180    21
181    20
182    18
183    16
184    14
185    15
186    20
187    20
188    19
189    11
190    11
191    14
192    17
193    16
194    12
195    18
196    12
197    8
198    11
199    11
200    20
201    11
202    13
203    13
204    13
205    12
206    11
207    13
208    16
209    14
210    13
211    14
212    5
213    9
214    4
215    12
216    14
217    10
218    11
219    7
220    11
221    9
222    7
223    7
224    10
225    6
226    4
227    6
228    12
229    8
230    10
231    4
232    4
233    6
234    8
235    2
236    3
237    6
238    4
239    4
240    6
241    3
242    6
243    6
244    7
245    4
246    3
247    9
248    5
249    3
250    6
251    5
252    3
253    8
254    1
255    5
256    5
257    5
258    3
259    3
这是等差四生素数d30的中项和无解偶数的分布数据(大分区,每区跨过210万个自然数),安走势看,很快就没有了(无解偶数)。

素数问题的解决是我学习编程永恒的动力。
2021-11-26 20:23
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE d:\最密三生素数\三生素数d42.DBF ALIAS 三中表
SELECT 2
USE d:\最密三生素数\各段三生素数个数42.DBF ALIAS 三生个数表42
SELECT 3
USE d:\最密三生素数\偶数表新.DBF ALIAS 偶数表新
SELECT 4
USE d:\最密三生素数\数据源表逆.dbf ALIAS 数据源A
SELECT 5
USE d:\最密三生素数\数据表a.dbf ALIAS 数据A
kssj=SECONDS()
bwjm="偶数周期表逆"
bwjmzj="偶数周期表子集逆"
 For i=2 TO 101
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
      && USE IN 3
      && USE d:\等差四生素数\偶数表新.DBF ALIAS 偶数表新
       SELECT 3
     
       DELETE ALL
       PACK
       wdz=bwjmzj+ALLTRIM(STR(i-1)) &&子集表
      
       SELECT 5
       DELETE ALL
       PACK
       INSERT INTO 数据A (数据1) SELECT 偶元+(i-2)*210000 FROM 数据源A
       FOR j=1 TO INT(i/2)
        @ 15,22 say j
        SELECT  2     
        GO j
        zgs1=总个数
        fgs1=分个数
        SELECT  2
        GO i-j
        zgs2=总个数
        fgs2=分个数
           SELECT 1
           GO zgs1-fgs1+1
               FOR k1=1  TO  fgs1
               A=三中42
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=三中42
                 C=A+B
                 SELECT 3
                 APPEND BLANK   
                 REPLACE 偶数 WITH C   
                 SELECT 1
                 GO jl2+1
                 ENDFOR
               SELECT 1
               GO jl1+1
             ENDFOR   
          ENDFOR
       SELECT 3
       USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
       select * from 偶数表新.dbf DISTINCT INTO table d:\最密三生素数\&wd
       sele * from 数据A where 数据1 not in(sele 偶数 from &wd ) into table d:\最密三生素数\&wdz
       USE IN &wdz
      USE IN &wd
      
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2021-11-28 19:01
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:921
专家分:683
注 册:2016-6-29
收藏
得分:0 
区段    范围    统计    各段个数
1    210000    2632    2632
2    420000    3164    532
3    630000    3415    251
4    840000    3559    144
5    1050000    3656    97
6    1260000    3728    72
7    1470000    3762    34
8    1680000    3786    24
9    1890000    3808    22
10    2100000    3825    17
11    2310000    3833    8
12    2520000    3850    17
13    2730000    3858    8
14    2940000    3867    9
15    3150000    3870    3
16    3360000    3877    7
17    3570000    3879    2
18    3780000    3882    3
19    3990000    3883    1
20    4200000    3884    1
21    4410000    3888    4
22    4620000    3891    3
23    4830000    3893    2
24    5040000    3893    0
25    5250000    3894    1
26    5460000    3895    1
27    5670000    3897    2
28    5880000    3898    1
29    6090000    3899    1
30    6300000    3899    0
31    6510000    3899    0
32    6720000    3899    0
33    6930000    3899    0
34    7140000    3899    0
35    7350000    3900    1
36    7560000    3901    1
37    7770000    3901    0
38    7980000    3901    0
39    8190000    3901    0
40    8400000    3901    0
41    8610000    3901    0
42    8820000    3901    0
43    9030000    3901    0
44    9240000    3901    0
45    9450000    3901    0
46    9660000    3901    0
47    9870000    3901    0
48    10080000    3901    0
49    10290000    3901    0
50    10500000    3901    0
51    10710000    3901    0
52    10920000    3901    0
53    11130000    3901    0
54    11340000    3901    0
55    11550000    3901    0
56    11760000    3901    0
57    11970000    3901    0
58    12180000    3902    1
最密三生素数(P,P+4,P+6)的中项和合成分布,无解偶数的最终结果

素数问题的解决是我学习编程永恒的动力。
2021-11-28 22:56
快速回复:优化程序或者从新编写求四生素数中项不能合成的偶数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031648 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved