数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: 白新岭

[原创]请教vfbpgyfk先生一个编程问题

  [复制链接]
 楼主| 发表于 2025-5-26 23:32 | 显示全部楼层
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\等差3生素数公差六.DBF ALIAS 等差3生六
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 5761455
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 2 &&素数A与B之间间隔1个素数
    PUBLIC B
    B=素数
    SKIP 1
    PUBLIC C
    C=素数
    cj1=B-A  &&求两个素数的差值
    cj2=C-B  &&求两个素数的差值
    IF cj1=6 AND cj2=6  &&and同时满足条件
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE dcsz WITH B         &&将A+C的均值(即B)赋给dcsz(等差三中项)
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 00:23 | 显示全部楼层
SELECT 1
USE D:\素数式系数\素数表十亿.DBF ALIAS 素数表
SELECT 2
USE D:\素数式系数\等差3生素数公差六.DBF ALIAS 等差3生六
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 5761455
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=素数
    SKIP 1
    PUBLIC B
    B=素数
    SKIP 2 &&素数C与B之间间隔1个素数
    PUBLIC C
    C=素数
    cj1=B-A  &&求两个素数的差值
    cj2=C-B  &&求两个素数的差值
    IF cj1=6 AND cj2=6  &&and同时满足条件
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE dcsz WITH B         &&将A+C的均值(即B)赋给dcsz(等差三中项)
    ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 08:14 | 显示全部楼层
USE
MODIFY PROJECT d:\素数式系数\素数式系数项目.pjx
USE 等差3生素数公差六 AGAIN IN 0
SELECT 等差3生素数公差六
BROWSE LAST
COPY TO d:\三生素数中项\等差三中d六.dbf
USE
MODIFY PROJECT d:\三生素数中项\三生素数项目.pjx
ADD TABLE d:\三生素数中项\等差三中d六.dbf
USE 等差三中d六 AGAIN IN 0
SELECT 等差三中d六
BROWSE LAST
SORT ON dcsz ASCENDING
SELECT * FROM 等差三中d六 ORDER BY dcsz INTO CURSOR 等差三中升
BROWSE LAST
COPY TO d:\三生素数中项\等差3中升序.dbf
USE
ADD TABLE d:\三生素数中项\等差3中升序.dbf
USE 等差3中升序 AGAIN IN 0
SELECT 等差3中升序
BROWSE LAST
COUNT ALL for
COUNT ALL FOR dcsz<10^7 TO tj
?tj
GO 17194
USE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 10:10 | 显示全部楼层
截止2025年05月26日周一23:15分浏览量718808, 回复3659,热度276
截止2025年05月27日周二10:09分浏览量719854, 回复3663,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 11:58 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中元素.DBF ALIAS 等差元素
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
FOR i=1 TO 100
   @ 3,6 say i
      SELECT 1
      GO 1
      FOR j=1  TO  9
        SELECT 1
        PUBLIC a
         a=dcys
         m=30*(i-1)+a
         SELECT  2
         APPEND BLANK   
         REPLACE dcszh WITH m
         REPLACE tj2 WITH 0
         SELECT 1
         skip
     ENDFOR
ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
给等差三中和统计表置数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 15:54 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中升序.DBF ALIAS 等差3中表
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
SELECT 1
GO 1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 100
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=dcsz
      SELECT 1
      GO 1
      FOR j=1  TO 9888
      PUBLIC B
      B=dcsz
      n=A+B
      c=n-INT((n-1)/30)*30
      d=INT((n-1)/30)*9
      IF c<21
      SELECT  2
      GO   INT(c/3)+d
      REPLACE tj2 WITH tj2+1
      ELSE
      SELECT  2
      GO 3+INT((c-10)/3)+d
      REPLACE tj2 WITH tj2+1
      ENDIF
      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,"运行时间提示")
分配等差3生素数中项和结果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 15:58 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中升序.DBF ALIAS 等差3中表
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
SELECT 1
GO 101 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 9788
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=dcsz
      SELECT 1
      GO 1
      FOR j=1  TO 9888
      PUBLIC B
      B=dcsz
      n=A+B
      c=n-INT((n-1)/30)*30
      d=INT((n-1)/30)*9
      IF c<21
      SELECT  2
      GO   INT(c/3)+d
      REPLACE tj2 WITH tj2+1
      ELSE
      SELECT  2
      GO 3+INT((c-10)/3)+d
      REPLACE tj2 WITH tj2+1
      ENDIF
      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,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 18:00 | 显示全部楼层
截止2025年05月26日周一23:15分浏览量718808, 回复3659,热度276
截止2025年05月27日周二18:00分浏览量720749, 回复3667,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 21:06 | 显示全部楼层
截止2025年05月26日周一23:15分浏览量718808, 回复3659,热度276
截止2025年05月27日周二21:06分浏览量721179, 回复3668,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-27 23:36 | 显示全部楼层
截止2025年05月26日周一23:15分浏览量718808, 回复3659,热度276
截止2025年05月27日周二23:36分浏览量721393, 回复3669,热度276
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-15 22:08 , Processed in 0.089435 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表