| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 12672 人关注过本帖
标题:优化程序或者从新编写求四生素数中项不能合成的偶数
取消只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE D:\三角递增法\偶数表.DBF ALIAS 偶数表
kssj=SECONDS()
 SELECT  1
 GO 1101
 For i=1 to 200
      @ 5,12 say i
    SELECT  1     
    jl=recno()
    PUBLIC A
    A=四中
          SELECT  1
          GO 1100+i
          For j=1 to 101850-i
          @ 15,22 say j
          PUBLIC B
          B=四中
          C=A+B
              SELECT 2
              APPEND BLANK   
              REPLACE 偶数 WITH C   
           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 16:02
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册:2016-6-29
收藏
得分:0 
这个问题就是一道数学题:x+y=30N,x,y取四生素数表中的数值,那些数据,由小到大排列,它们在210这个周期内,只能合成0,30,90,120,180这五类偶数,另外的60,150是不能被合成的(所以不考虑这两类数),也就已30递增,7个值,只有5个值可以被合成,另外2个值不能被合成;就是在能被合成的五类数中,在小范围内,存在有限个反例,最大反例出现范围,不超过43.5亿。找43.5亿以前的反例(五类数中的)。
    那个四生素数表提供了100亿内的四生素数,用末素代替的,只需要统一减去4,就得到了四生素数中项值。

素数问题的解决是我学习编程永恒的动力。
2021-10-19 17:00
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册:2016-6-29
收藏
得分:0 
1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE D:\三角递增法\四生素数表中分层.DBF ALIAS 四中表分层
kssj=SECONDS()
 SELECT  1
 GO 1
 For i=1 to 102949
      @ 5,12 say i
    SELECT  1   
    && jl=recno()
    PUBLIC A
    A=四中
    B=INT(A/210)
    C=MOD(A,210)
         SELECT 2
         APPEND BLANK     
         REPLACE 整数 WITH B
         REPLACE 余数 WITH C
   SELECT 1
   skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
制作四生素数中项的分身

素数问题的解决是我学习编程永恒的动力。
2021-10-19 21:31
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册:2016-6-29
收藏
得分:0 
四生素数表中分身.zip (300.62 KB)

这是上边程序制作的文件。

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

素数问题的解决是我学习编程永恒的动力。
2021-10-19 22:33
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册: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
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册: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
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1121
专家分:683
注 册: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
快速回复:优化程序或者从新编写求四生素数中项不能合成的偶数
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048108 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved