数学中国

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

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

  [复制链接]
发表于 2021-8-6 20:07 | 显示全部楼层
SELECT 1
USE D:\二生素数中项合成\四生素数中项L12.DBF ALIAS 四生素数中项
SELECT 2
USE D:\二生素数中项合成\k生素数的数量统计.DBF ALIAS k生统计

kssj=SECONDS()
  SELECT 1
  For i=1 to 8 && 这个循环13次,是因为累计2的分布值有13条记录,代表13种素数式的排列(2-5生)
    @ 3,6 say i
     fw=10^i
            && jlh1=RECNO()
            SELECT 1
            GO 1
            COUNT ALL FOR fw>四素12 TO tj
              SELECT  2   &&打开盛放素数式的表
              APPEND BLANK     &&增加一条空记录
              REPLACE 范围 WITH fw
              REPLACE 跨度 WITH 102
              REPLACE 统计 WITH tj
              REPLACE k生 WITH 4
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
孪生素数中项的差已经统计到了102
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:52 | 显示全部楼层
SELECT 1
USE D:\VFP温习\L10二生素数表.DBF ALIAS 二生素数表
SELECT 2
USE D:\VFP温习\L10二生素数四.DBF ALIAS 二生素数四
kssj=SECONDS()
For i=1 to 4570055
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=二生10中
    count next 18 for 102=二生10中-A to js1
        IF js1=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 二10四 WITH A+51 &&将N值付给素数式
         else
       ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:52 | 显示全部楼层
SELECT 1
USE D:\vfp温习\L10二生素数四.DBF ALIAS 二生四
SELECT 2
USE D:\vfp温习\L10四生素数统计表.DBF ALIAS 四生统计

kssj=SECONDS()
  SELECT 1
  For i=1 to 9 && 这个循环13次,是因为累计2的分布值有13条记录,代表13种素数式的排列(2-5生)
    @ 3,6 say i
     fw=10^i
            && jlh1=RECNO()
            SELECT 1
            GO 1
            COUNT ALL FOR fw>二10四 TO tj
              SELECT  2   &&打开盛放素数式的表
              APPEND BLANK     &&增加一条空记录
              REPLACE 范围 WITH fw
              REPLACE 跨度 WITH 10+102
              REPLACE 统计 WITH tj
              REPLACE k生 WITH 4
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:53 | 显示全部楼层
SELECT 1
USE D:\VFP温习\L14二生素数表.DBF ALIAS 二生素数表
SELECT 2
USE D:\VFP温习\L14二生素数四.DBF ALIAS 二生素数四
kssj=SECONDS()
For i=1 to 4110890
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=二生14中
    count next 18 for 102=二生14中-A to js1
        IF js1=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 二14四 WITH A+51 &&将N值付给素数式
         else
       ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:54 | 显示全部楼层
SELECT 1
USE D:\vfp温习\L14二生素数四.DBF ALIAS 二生四
SELECT 2
USE D:\vfp温习\L14四生素数统计表.DBF ALIAS 四生统计

kssj=SECONDS()
  SELECT 1
  For i=1 to 9 && 这个循环13次,是因为累计2的分布值有13条记录,代表13种素数式的排列(2-5生)
    @ 3,6 say i
     fw=10^i
            && jlh1=RECNO()
            SELECT 1
            GO 1
            COUNT ALL FOR fw>二14四 TO tj
              SELECT  2   &&打开盛放素数式的表
              APPEND BLANK     &&增加一条空记录
              REPLACE 范围 WITH fw
              REPLACE 跨度 WITH 102
              REPLACE 统计 WITH tj
              REPLACE k生 WITH 4
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:54 | 显示全部楼层
SELECT 1
USE D:\VFP温习\L22二生素数表.DBF ALIAS 二生素数表
SELECT 2
USE D:\VFP温习\L22二生素数四.DBF ALIAS 二生素数四
kssj=SECONDS()
For i=1 TO  3807690
      @ 5,12 say i
      m=17
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=二生22中
    count next m+1 for 6*m=二生22中-A to js1
        IF js1=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 二22四 WITH A+3*m &&将N值付给素数式
         else
       ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:55 | 显示全部楼层
SELECT 1
USE D:\vfp温习\L22二生素数四.DBF ALIAS 二生四
SELECT 2
USE D:\vfp温习\L22四生素数统计表.DBF ALIAS 四生统计

kssj=SECONDS()
  SELECT 1
  For i=1 to 9 && 这个循环13次,是因为累计2的分布值有13条记录,代表13种素数式的排列(2-5生)
    @ 3,6 say i
     fw=10^i
            && jlh1=RECNO()
            SELECT 1
            GO 1
            COUNT ALL FOR fw>二22四 TO tj
              SELECT  2   &&打开盛放素数式的表
              APPEND BLANK     &&增加一条空记录
              REPLACE 范围 WITH fw
              REPLACE 跨度 WITH 102
              REPLACE 统计 WITH tj
              REPLACE k生 WITH 4
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:55 | 显示全部楼层
SELECT 1
USE D:\VFP温习\L26二生素数表.DBF ALIAS 二生素数表
SELECT 2
USE D:\VFP温习\L26二生素数四.DBF ALIAS 二生素数四
kssj=SECONDS()
For i=1 TO  3736870
      @ 5,12 say i
      m=17
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=二生26中
    count next m+1 for 6*m=二生26中-A to js1
        IF js1=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 二26四 WITH A+3*m &&将N值付给素数式
         else
       ENDIF
      SELECT 1
      GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:56 | 显示全部楼层
SELECT 1
USE D:\vfp温习\L26二生素数四.DBF ALIAS 二生四
SELECT 2
USE D:\vfp温习\L26四生素数统计表.DBF ALIAS 四生统计

kssj=SECONDS()
  SELECT 1
  For i=1 to 9 && 这个循环13次,是因为累计2的分布值有13条记录,代表13种素数式的排列(2-5生)
    @ 3,6 say i
     fw=10^i
            && jlh1=RECNO()
            SELECT 1
            GO 1
            COUNT ALL FOR fw>二26四 TO tj
              SELECT  2   &&打开盛放素数式的表
              APPEND BLANK     &&增加一条空记录
              REPLACE 范围 WITH fw
              REPLACE 跨度 WITH 102
              REPLACE 统计 WITH tj
              REPLACE k生 WITH 4
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-18 19:57 | 显示全部楼层
SELECT 1
USE D:\nm抽取m个数\模m余数统计.DBF ALIAS 模m余数统计
kssj=SECONDS()
y0=0
y1=0
y2=0
y3=0
y4=0
x=5*9+1 && m已经作为一个变量存在,所以文件大的没边,形成了1.9亿的记录条
    For i=1 to x
      FOR j=i+1  TO x+1
         FOR h=j+1  TO x+2
         FOR k=h+1  TO x+3
         FOR m=k+1  TO x+4
             hz=i+j+h+k+m
             ys=MOD(hz,5)
               DO CASE
                  CASE ys=0
                  y0=y0+1
                  CASE ys=1
                  y1=y1+1
                  CASE ys=2
                  y2=y2+1
                  CASE ys=3
                  y3=y3+1
                  CASE ys=4
                  y4=y4+1
                  ENDCASE
          ENDFOR
          ENDFOR
         ENDFOR
      endfor
   ENDFOR
   SELECT  1   &&打开盛放素数式的表
          APPEND BLANK     &&增加一条空记录
          REPLACE m余 WITH 0 &&将B值付给素数式
          REPLACE 统计 WITH y0 &&将B值付给素数式
          APPEND BLANK     &&增加一条空记录
          REPLACE m余 WITH 1 &&将B值付给素数式
          REPLACE 统计 WITH y1 &&将B值付给素数式
          APPEND BLANK     &&增加一条空记录
          REPLACE m余 WITH 2 &&将B值付给素数式
          REPLACE 统计 WITH y2 &&将B值付给素数式
          APPEND BLANK     &&增加一条空记录
          REPLACE m余 WITH 3 &&将B值付给素数式
          REPLACE 统计 WITH y3 &&将B值付给素数式
          APPEND BLANK     &&增加一条空记录
          REPLACE m余 WITH 4 &&将B值付给素数式
          REPLACE 统计 WITH y4 &&将B值付给素数式
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 01:42 , Processed in 0.089707 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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