数学中国

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

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

  [复制链接]
 楼主| 发表于 2025-5-28 09:06 | 显示全部楼层
SELECT 等差3中升序
BROWSE LAST
COUNT ALL FOR dcsz<5000000 TO tj
?tj
GO 9888
USE
USE 等差三中和统计表 AGAIN IN 0
SELECT 等差三中和统计表
BROWSE LAST
COUNT ALL FOR dcszh<5000000 TO tj
GO 1499900
USE
USE 等差三中和统计表 AGAIN IN 0
SELECT 等差三中和统计表
BROWSE LAST
SELECT * FROM 等差三中和统计表 WHERE tj2=0
COUNT ALL FOR dcszh<7000000 TO tj
?tj
GO 13119
COUNT ALL FOR dcszh 5000000 TO tj
COUNT ALL FOR dcszh<5000000 TO tj
?tj
GO 11859
GO 1
COPY TO d:\三生素数中项\等差3生素数中项五百万前无合成数.xls NEXT 11859 TYPE XL5
USE
USE 等差3中升序 AGAIN IN 0
SELECT 等差3中升序
BROWSE LAST
COUNT ALL FOR dcsz<10000000 TO tj
?tj
GO 17194
USE
USE 等差三中和统计表 AGAIN IN 0
SELECT 等差三中和统计表
BROWSE LAST
GO bottom
USE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-28 09:10 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中升序.DBF ALIAS 等差3中表
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
SELECT 1
GO 9889 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 7306
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=dcsz
      SELECT 1
      GO 9889
      FOR j=1  TO 7306
      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,"运行时间提示")
运算\((a+b)^2=a^2+2ab+b^2\)后半部分b的平方,交叉项另外计算。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-28 12:04 | 显示全部楼层
截止2025年05月27日周二23:36分浏览量721393, 回复3669,热度276
截止2025年05月28日周三12:04分浏览量722479, 回复3672,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-28 20:07 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中升序.DBF ALIAS 等差3中表
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
SELECT 1
GO 1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 9888
   @ 3,6 say i
   jl=recno()
   PUBLIC A
   A=dcsz
      SELECT 1
      GO 9889
      FOR j=1  TO 7306
      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+2 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO 3+INT((c-10)/3)+d
      REPLACE tj2 WITH tj2+2 &&本次运行(a+b)的平方交叉部分
      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-28 23:34 | 显示全部楼层
截止2025年05月27日周二23:36分浏览量721393, 回复3669,热度276
截止2025年05月28日周三23:34分浏览量723525, 回复3674,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-29 08:18 | 显示全部楼层
截止2025年05月28日周三23:34分浏览量723525, 回复3674,热度276
截止2025年05月29日周四08:18分浏览量724453, 回复3675,热度276
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-29 11:49 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中升序.DBF ALIAS 等差3中表
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
SELECT 1
GO 1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 17194
   @ 9,6 say i
   jl=recno()
   PUBLIC A
   A=dcsz
      SELECT 1
      GO 17195
      FOR j=1  TO 3902
      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+2 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO 3+INT((c-10)/3)+d
      REPLACE tj2 WITH tj2+2 &&本次运行(a+b)的平方交叉部分
      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-29 12:46 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中元素.DBF ALIAS 等差元素
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
FOR i=666670 TO 1000003
   @ 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-29 23:22 | 显示全部楼层
SELECT 1
USE d:\三生素数中项\等差3中升序.DBF ALIAS 等差3中表
SELECT 2
USE d:\三生素数中项\等差三中和统计表.DBF ALIAS 等差三中和统计
kssj=SECONDS()
SELECT 1
GO 1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO 17194
   @ 9,6 say i
   jl=recno()
   PUBLIC A
   A=dcsz
      SELECT 1
      GO 21097
      FOR j=1  TO 2526
      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+2 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO 3+INT((c-10)/3)+d
      REPLACE tj2 WITH tj2+2 &&本次运行(a+b)的平方交叉部分
      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-29 23:47 | 显示全部楼层
截止2025年05月28日周三23:34分浏览量723525, 回复3674,热度276
截止2025年05月29日周四23:46分浏览量726193, 回复3679,热度276
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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