数学中国

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

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

  [复制链接]
 楼主| 发表于 2025-5-25 07:28 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\正最密三生素数中项.DBF ALIAS 正三中项
SELECT 2
USE d:\三生素数中项\三中和统计表.DBF ALIAS 三中和统计
kssj=SECONDS()
SELECT 1
GO 8543 &&定位在第一个参与运算值上
FOR i=1 TO 3241
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=三中
      SELECT 1
      GO 8543
      FOR j=1  TO 3241
      PUBLIC B
      B=三中
      n=A+B
      SELECT  2
      GO   3*INT((n+2)/30-1)+MOD(n+2,30)/6+1
      REPLACE tj2 WITH tj2+1
      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,"运行时间提示")
分配三生素数中项之和从1千万到1.5千万之间两项之和(指(a+b)^2=a^2+2ab+b^2中的b^2部分,无交叉项,交叉项另外计算分配)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-25 08:15 | 显示全部楼层
截止2025年05月24日周六22:58分浏览量714108, 回复3649,热度276
截止2025年05月25日周日08:15分浏览量715093, 回复3651,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-25 08:47 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\正最密三生素数中项.DBF ALIAS 正三中项
SELECT 2
USE d:\三生素数中项\三中和统计表.DBF ALIAS 三中和统计
kssj=SECONDS()
SELECT 1
GO 1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 8542
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=三中
      SELECT 1
      GO 8543
      FOR j=1  TO 3241
      PUBLIC B
      B=三中
      n=A+B
      SELECT  2
      GO   3*INT((n+2)/30-1)+MOD(n+2,30)/6+1
      REPLACE tj2 WITH tj2+2
      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,"运行时间提示")
本次取\((a+b)^2=a^2+2ab+b^2\)的交叉部分2ab,所以,是2组结果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-25 13:08 | 显示全部楼层
SELECT 1
USE D:\素数式系数\三生素数jg6.DBF ALIAS 三素jg6表
SELECT 2
USE D:\素数式系数\逆三生素数中项.DBF ALIAS 逆三生素数中项表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 111156
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=sss6
   
    IF MOD(A,3)=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE nsz WITH A    &&将N值付给素数式
    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-25 15:35 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\逆最密三生素数中项.DBF ALIAS 逆正三中项
SELECT 2
USE d:\三生素数中项\逆三中和统计表.DBF ALIAS 逆三中和统计
kssj=SECONDS()
SELECT 1
GO 121 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 11881
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=nsz
      SELECT 1
      GO 1
      FOR j=1  TO 12001
      PUBLIC B
      B=nsz
      n=A+B
      SELECT  2
      GO   3*INT((n+10)/30-1)+MOD(n+10,30)/6+1
      REPLACE tj2 WITH tj2+1
      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-26 00:22 | 显示全部楼层
截止2025年05月24日周六22:58分浏览量714108, 回复3649,热度276
截止2025年05月25日周日24:21分浏览量716643, 回复3655,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-26 07:55 | 显示全部楼层
截止2025年05月25日周日24:21分浏览量716643, 回复3655,热度276
截止2025年05月26日周一07:55分浏览量717457, 回复3656,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-26 22:14 | 显示全部楼层
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
    PUBLIC B
    B=素数
    SKIP 2
    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,"运行时间提示")
从素数表中筛选等差3生素数公差六,素数之间都各有一个素数(1383个,一类697个,另一类686个)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-26 22:15 | 显示全部楼层
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 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-26 23:15 | 显示全部楼层
截止2025年05月25日周日24:21分浏览量716643, 回复3655,热度276
截止2025年05月26日周一23:15分浏览量718808, 回复3659,热度276
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 17:48 , Processed in 0.094233 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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