数学中国

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

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

  [复制链接]
 楼主| 发表于 2021-11-23 19:20 | 显示全部楼层
SELECT 477
USE d:\等差四生素数\无偶数表总表.DBF ALIAS 无偶数总表
kssj=SECONDS()
wozzxz="无偶最终结果表新总"
For l=2 to 2
      @ 15,12 say l
      wozb=wozzxz+ALLTRIM(STR(l))
      USE IN 477
      USE d:\等差四生素数\无偶数表总表.DBF ALIAS 无偶数总表
       SELECT 477
     
       DELETE ALL
       PACK
      
      
bwjm="偶数周期表"
For j=(l-1)*2 to 2*l
      @ 5,12 say j
     k=j
      wd=bwjm+ALLTRIM(STR(j))
      USE d:\等差四生素数\&wd in 0
      For i=(k-1)*750000+1 to (k+1)*750000

      @ 10,22 say i
    n=i
    s=0
    do case
    case MOD(n,5)=1
       s=s+2
    case MOD(n,5)=2
       s=s+4
    case MOD(n,5)=3
       s=s+10
    case MOD(n,5)=4
       s=s+12
    case MOD(n,5)=0
       s=s+14
    endcase
     
    wou=INT((n-1)/5)*14+s
    &&  wou=2*i
     
    && IF MOD(wou,7)=1 OR  MOD(wou,7)=6
    &&    LOOP
    && ENDIF
     
      SELECT "偶数周期表"+ALLTRIM(STR(k))
      
      
         && select G:\三角递增法\&WD..DBF IN 0
         A=偶数
         IF A=wou
         SELECT "偶数周期表"+ALLTRIM(STR(k))
         SKIP
         && ?recno()
         LOOP
         ELSE
         insert into 无偶数总表 (无偶) values (wou)    && 上面三名改成这一句
         ENDIF
   
     ENDFOR
     use in "偶数周期表"+ALLTRIM(STR(k))        && 用完就关闭,否则可能会崩溃
ENDFOR
SELECT * FROM 无偶数总表 WHERE 无偶 IN ( SELECT 无偶 FROM 无偶数总表 GROUP BY 无偶 HAVING count(*) > 1) order by 无偶 INTO table d:\等差四生素数\&wozb
use IN &wozb
SELECT 477
USE IN  477
ENDFOR

    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
针对等差四生素数d30的程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 19:21 | 显示全部楼层
SELECT 1
USE d:\等差四生素数\无偶最终结果表新总2.DBF ALIAS 无偶终表2
SELECT 2
USE d:\等差四生素数\无偶最终结果表新总2单.DBF ALIAS 无偶结果表新2单
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 201682
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    && jl=recno()
    PUBLIC A
    A=无偶
   
    IF MOD(i,2)=1
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 无偶 WITH A    &&将N值付给素数式
    ENDIF
   
   SELECT 1
   skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 19:21 | 显示全部楼层
SELECT 1
USE d:\等差四生素数\无偶最终结果表新总2单.DBF ALIAS 无偶总新2单
SELECT 2
USE d:\等差四生素数\无偶数统计表.DBF ALIAS 无偶统计
kssj=SECONDS()
SELECT 1
     For j=21 to 40
      @ 3,6 say j
      fw=j*210000
            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-11-23 20:40 | 显示全部楼层
select * from dbf() where ksh=b.ksh1 and not zymc=b.zymc1
这是网上搜寻到的,查找不同记录值。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 20:47 | 显示全部楼层
select * from a where 字段1 not in( select 字段1 from b)
找出不同记录
如果去掉not呢?
select * from a where 字段1  in( select 字段1 from b)  into table 新表
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 23:25 | 显示全部楼层
SELECT 1
USE d:\等差四生素数\四中d30.DBF ALIAS 四中表
SELECT 2
USE d:\等差四生素数\各段四生素数个数5.DBF ALIAS 四生个数表5
SELECT 3
USE d:\等差四生素数\偶数表新.DBF ALIAS 偶数表新
SELECT 4
USE d:\等差四生素数\数据源表.dbf ALIAS 数据源A
SELECT 5
USE d:\等差四生素数\数据表a.dbf ALIAS 数据A
kssj=SECONDS()
bwjm="偶数周期表"
bwjmzj="偶数周期表子集"
For i=122 TO 123
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
      && USE IN 3
      && USE d:\等差四生素数\偶数表新.DBF ALIAS 偶数表新
       SELECT 3
     
       DELETE ALL
       PACK
       wdz=bwjmzj+ALLTRIM(STR(i-1)) &&子集表
      
       SELECT 5
       DELETE ALL
       PACK
       INSERT INTO 数据A (数据1) SELECT 偶元+(i-2)*2100000 FROM 数据源A
       FOR j=1 TO INT(i/2)
        @ 15,22 say j
        SELECT  2     
        GO j
        zgs1=总个数
        fgs1=分个数
        SELECT  2
        GO i-j
        zgs2=总个数
        fgs2=分个数
           SELECT 1
           GO zgs1-fgs1+1
               FOR k1=1  TO  fgs1
               A=四中30
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=四中30
                 C=A+B
                 SELECT 3
                 APPEND BLANK   
                 REPLACE 偶数 WITH C   
                 SELECT 1
                 GO jl2+1
                 ENDFOR
               SELECT 1
               GO jl1+1
             ENDFOR   
          ENDFOR
       SELECT 3
       USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
       select * from 偶数表新.dbf DISTINCT INTO table d:\等差四生素数\&wd
       sele * from 数据A where 数据1 not in(sele 偶数 from &wd ) into table d:\等差四生素数\&wdz
       USE IN &wdz
      USE IN &wd
      
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-25 14:07 | 显示全部楼层
SELECT 1
USE d:\等差四生素数\偶数周期表子集总表.DBF ALIAS 子集总表

kssj=SECONDS()

bwjmzj="偶数周期表子集"
For i=122 TO 259
      @ 5,12 say i
       wdz=bwjmzj+ALLTRIM(STR(i)) &&子集表
     SELECT 1
     APPEND FROM d:\等差四生素数\&wdz
ENDFOR

=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")  
这是把所有表的记录追加到同一个表上的程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-28 11:55 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\三生素数d24.DBF ALIAS 三中表
SELECT 2
USE d:\最密三生素数\各段三生素数个数24.DBF ALIAS 三生个数表24
SELECT 3
USE d:\最密三生素数\偶数表新.DBF ALIAS 偶数表新
SELECT 4
USE d:\最密三生素数\数据源表.dbf ALIAS 数据源A
SELECT 5
USE d:\最密三生素数\数据表a.dbf ALIAS 数据A
kssj=SECONDS()
bwjm="偶数周期表"
bwjmzj="偶数周期表子集"
For i=101 TO 476
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
      && USE IN 3
      && USE d:\等差四生素数\偶数表新.DBF ALIAS 偶数表新
       SELECT 3
     
       DELETE ALL
       PACK
       wdz=bwjmzj+ALLTRIM(STR(i-1)) &&子集表
      
       SELECT 5
       DELETE ALL
       PACK
       INSERT INTO 数据A (数据1) SELECT 偶元+(i-2)*210000 FROM 数据源A
       FOR j=1 TO INT(i/2)
        @ 15,22 say j
        SELECT  2     
        GO j
        zgs1=总个数
        fgs1=分个数
        SELECT  2
        GO i-j
        zgs2=总个数
        fgs2=分个数
           SELECT 1
           GO zgs1-fgs1+1
               FOR k1=1  TO  fgs1
               A=三中24
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=三中24
                 C=A+B
                 SELECT 3
                 APPEND BLANK   
                 REPLACE 偶数 WITH C   
                 SELECT 1
                 GO jl2+1
                 ENDFOR
               SELECT 1
               GO jl1+1
             ENDFOR   
          ENDFOR
       SELECT 3
       USE IN 3&&打开,或关闭,那个工作区(或者,写别名)
      
       select * from 偶数表新.dbf DISTINCT INTO table d:\最密三生素数\&wd
       sele * from 数据A where 数据1 not in(sele 偶数 from &wd ) into table d:\最密三生素数\&wdz
       USE IN &wdz
      USE IN &wd
      
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-28 11:55 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\偶数周期表子集总表5.DBF ALIAS 子集总表

kssj=SECONDS()

bwjmzj="偶数周期表子集"
For i=400 TO 475
      @ 5,12 say i
       wdz=bwjmzj+ALLTRIM(STR(i)) &&子集表
     SELECT 1
     APPEND FROM d:\最密三生素数\&wdz
ENDFOR

=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")  
上楼是第一步,这是第二步。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-28 11:56 | 显示全部楼层
CLOSE DATABASES ALL
USE d:\最密三生素数\偶数周期表子集总表3.dbf IN 0
SELECT * FROM 偶数周期表子集总表3 WHERE 数据1 IN ( SELECT 数据1 FROM 偶数周期表子集总表3 GROUP BY 数据1 HAVING count(*) > 1) order by 数据1 INTO table d:\最密三生素数\偶数双记录表3
USE IN 偶数双记录表3
这是第三步
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 20:53 , Processed in 0.091562 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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