标题:优化程序或者从新编写求四生素数中项不能合成的偶数
只看楼主
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE D:\三角递增法\四生素数表中分层.DBF ALIAS 四中表分层
SELECT 2
USE D:\三角递增法\偶数双表.DBF ALIAS 偶数双表
kssj=SECONDS()
 SELECT  1
 GO 1
 For i=1 to 1000
      @ 5,12 say i
    SELECT  1     
    jl=recno()
    A=整数
    B=余数
          SELECT  1
          GO 1
          For j=1 to 1000
          @ 15,22 say j
          C=整数
          D=余数
          E=A+C+INT((B+D)/210)
          F=MOD(B+D,210)
              SELECT 2
              APPEND BLANK   
              REPLACE 偶整 WITH E  
              REPLACE 偶余 WITH F
           SELECT 1
           SKIP
           ENDFOR
   SELECT 1
   GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")

素数问题的解决是我学习编程永恒的动力。
2021-10-19 21:49
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
Select A.* Into Table d:\三角递增法\偶数双表简 From 偶数双表 A Inner Join (Select 偶整,偶余 From 偶数双表 Group By 偶整,偶余 Having Count(*)=1) B On A.偶整=B.偶整 AND A.偶余=B.偶余
不知是否正确,在1000*1000个四生素数中,合成了只有512种结果,也太巧合了。512是2的9次方。

素数问题的解决是我学习编程永恒的动力。
2021-10-19 22:06
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 22楼 独木星空
此楼语句,产生的结果正确,不知道,同样的语句,产生的结果错误?用前1千个四生素数,进行加法运算,最少也得1000多,却出现512这样的极端错误,不知为何?

素数问题的解决是我学习编程永恒的动力。
2021-10-19 22:33
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
假设把四生素数表,分成100份,则100*100=10000份,其中100份为平方项,剩余9900份为交叉项,而交叉项前系数皆为2,所以9900/2=4950项,即,i从1到99,j从i+1到100,有99项,有98项,依此类推,所以共有1+2+3+....+99=(1+99)*99/2=4950项。
把数据散分,或许也是一种不错的思路。

素数问题的解决是我学习编程永恒的动力。
2021-10-20 07:06
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
CLOSE DATA
USE d:\三角递增法\偶数双表.dbf && 设源表的名称为“表1”
P=''
FOR K=1 TO FCOUNT()
 P=P+IIF(EMPTY(P),'',',')+FIELDS(K) && 取得表中所有字段名称,放在 P 中
ENDFOR
SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF 相同记录数 && 取得各记录的相同记录数及其各字段值
SELECT * FROM DBF() WHERE 相同记录数>1 && 该查询结果详细列举了表1中各重复记录的 重复数
默认情况下,新建的数据统计表是储存在vfp的根目录中的。

素数问题的解决是我学习编程永恒的动力。
2021-10-20 08:36
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四生素数中
SELECT 2
USE D:\三角递增法\各段四生素数个数.DBF ALIAS 四生个数
kssj=SECONDS()
SELECT 1
     For j=1 to 50
      @ 3,6 say j
      fw=j*10^8
            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-10-20 12:47
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
段落    统计    最小值
200    1    0
300    1    100
400    2    200
500    2    300
600    3    400
700    3    500
800    4    600
900    4    700
1000    5    800
1100    5    900
1200    6    1000
1300    6    1100
1400    7    1200
1500    7    1300
1600    8    1400
1700    8    1500
1800    9    1600
1900    9    1700
2000    10    1800
2100    10    1900
2200    11    2000
2300    11    2100
2400    12    2200
2500    12    2300
2600    13    2400
2700    13    2500
2800    14    2600
2900    14    2700
3000    15    2800
3100    15    2900
3200    16    3000
3300    16    3100
3400    17    3200
3500    17    3300
3600    18    3400
3700    18    3500
3800    19    3600
3900    19    3700
4000    20    3800
4100    20    3900
4200    21    4000
4300    21    4100
4400    22    4200
4500    22    4300
4600    23    4400
4700    23    4500
4800    24    4600
4900    24    4700        
5000    25    4800        
5100    25    4900        
总计算    650    20211020    分成100份    或许更好
把50亿分成50段,每段1亿,共需要排查650块数据;或者分成100块,每段0.5亿。这样会加快处理速度。

素数问题的解决是我学习编程永恒的动力。
2021-10-20 13:20
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
分段四生素数个数.zip (667 Bytes)
这是把50亿内的四生素数表分成50段,每段四生素数的个数表及到此范围内总四生素数的个数,为分块处理做准备。

素数问题的解决是我学习编程永恒的动力。
2021-10-20 20:11
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
再也没有人介入此问题,是我最大的失望。如果有人对此问题,进行促膝畅谈,进行算法交流,不胜感激涕零。

素数问题的解决是我学习编程永恒的动力。
2021-10-20 23:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用独木星空在2021-10-20 23:15:27的发言:

再也没有人介入此问题,是我最大的失望。如果有人对此问题,进行促膝畅谈,进行算法交流,不胜感激涕零。

当年陈景润夠孤独了,但他对素数的探究从未失望过。
素数对很多人来说比较枯燥无味,不感兴趣。
或者先谈一下相关方面的概念、探讨方向和目的,也许会对大家增加点兴趣。
有兴趣才有动力,编程也是这样。


[此贴子已经被作者于2021-10-21 05:13编辑过]

2021-10-21 04:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507201-1-1.html




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

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