数学中国

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

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

  [复制链接]
 楼主| 发表于 2021-11-28 11:57 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\偶数双记录表1.DBF ALIAS 偶数双记录表1
SELECT 2
USE d:\最密三生素数\偶数双记录表1单.DBF ALIAS 偶数双记录表1单
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 3516
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    && jl=recno()
    PUBLIC A
    A=数据1
   
    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-28 11:58 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\偶数双记录表0单.DBF ALIAS 无偶总新单
SELECT 2
USE d:\最密三生素数\无偶数统计表.DBF ALIAS 无偶统计
kssj=SECONDS()
SELECT 1
     For j=1 to 57
      @ 3,6 say j
      fw=j*210000
            SELECT 1
            GO 1
            COUNT ALL FOR 数据1<=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-28 12:01 | 显示全部楼层
范围        统计        各段个数
210000        2550        2550
420000        3219        669
630000        3588        369
840000        3784        196
1050000        3906        122
1260000        3977        71
1470000        4035        58
1680000        4080        45
1890000        4130        50
2100000        4154        24
2310000        4176        22
2520000        4206        30
2730000        4227        21
2940000        4241        14
3150000        4249        8
3360000        4257        8
3570000        4265        8
3780000        4269        4
3990000        4273        4
4200000        4276        3
4410000        4279        3
4620000        4281        2
4830000        4284        3
5040000        4289        5
5250000        4291        2
5460000        4294        3
5670000        4297        3
5880000        4298        1
6090000        4300        2
6300000        4303        3
6510000        4303        0
6720000        4303        0
6930000        4303        0
7140000        4303        0
7350000        4304        1
7560000        4304        0
7770000        4304        0
7980000        4304        0
8190000        4304        0
8400000        4305        1
8610000        4306        1
8820000        4306        0
9030000        4306        0
9240000        4306        0
9450000        4306        0
9660000        4306        0
9870000        4306        0
10080000        4306        0
10290000        4306        0
10500000        4306        0
10710000        4306        0
10920000        4306        0
11130000        4307        1
11340000        4307        0
11550000        4307        0
11760000        4307        0
11970000        4308        1
这是以上程序最终获得的结果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-28 12:04 | 显示全部楼层
截止2021年11月28日周日12:04分,热度56,回复1109,浏览量41759.
回复 支持 反对

使用道具 举报

发表于 2021-11-28 18:50 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\三生素数d42.DBF ALIAS 三中表
SELECT 2
USE d:\最密三生素数\各段三生素数个数42.DBF ALIAS 三生个数表42
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=2 TO 101
      @ 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=三中42
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=三中42
                 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 18:51 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\偶数周期表子集总表逆1.DBF ALIAS 子集总表

kssj=SECONDS()

bwjmzj="偶数周期表子集逆"
For i=1 TO 100
      @ 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 18:51 | 显示全部楼层
CLOSE DATABASES ALL
USE d:\最密三生素数\偶数周期表子集总表逆1.dbf IN 0
SELECT * FROM 偶数周期表子集总表逆1 WHERE 数据1 IN ( SELECT 数据1 FROM 偶数周期表子集总表逆1 GROUP BY 数据1 HAVING count(*) > 1) order by 数据1 INTO table d:\最密三生素数\偶数双记录表逆1
USE IN 偶数双记录表逆1
回复 支持 反对

使用道具 举报

发表于 2021-11-28 18:51 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\偶数双记录表逆1.DBF ALIAS 偶数双记录表1
SELECT 2
USE d:\最密三生素数\偶数双记录表逆1单.DBF ALIAS 偶数双记录表1单
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 2540
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    && jl=recno()
    PUBLIC A
    A=数据1
   
    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-28 18:52 | 显示全部楼层
SELECT 1
USE d:\最密三生素数\偶数双记录表逆0单.DBF ALIAS 无偶总新单
SELECT 2
USE d:\最密三生素数\无偶数统计表.DBF ALIAS 无偶统计
kssj=SECONDS()
SELECT 1
     For j=1 to 58
      @ 3,6 say j
      fw=j*210000
            SELECT 1
            GO 1
            COUNT ALL FOR 数据1<=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-28 18:53 | 显示全部楼层
区段        范围        统计        各段个数
1        210000        2632        2632
2        420000        3164        532
3        630000        3415        251
4        840000        3559        144
5        1050000        3656        97
6        1260000        3728        72
7        1470000        3762        34
8        1680000        3786        24
9        1890000        3808        22
10        2100000        3825        17
11        2310000        3833        8
12        2520000        3850        17
13        2730000        3858        8
14        2940000        3867        9
15        3150000        3870        3
16        3360000        3877        7
17        3570000        3879        2
18        3780000        3882        3
19        3990000        3883        1
20        4200000        3884        1
21        4410000        3888        4
22        4620000        3891        3
23        4830000        3893        2
24        5040000        3893        0
25        5250000        3894        1
26        5460000        3895        1
27        5670000        3897        2
28        5880000        3898        1
29        6090000        3899        1
30        6300000        3899        0
31        6510000        3899        0
32        6720000        3899        0
33        6930000        3899        0
34        7140000        3899        0
35        7350000        3900        1
36        7560000        3901        1
37        7770000        3901        0
38        7980000        3901        0
39        8190000        3901        0
40        8400000        3901        0
41        8610000        3901        0
42        8820000        3901        0
43        9030000        3901        0
44        9240000        3901        0
45        9450000        3901        0
46        9660000        3901        0
47        9870000        3901        0
48        10080000        3901        0
49        10290000        3901        0
50        10500000        3901        0
51        10710000        3901        0
52        10920000        3901        0
53        11130000        3901        0
54        11340000        3901        0
55        11550000        3901        0
56        11760000        3901        0
57        11970000        3901        0
58        12180000        3902        1
以上几步最终成果。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 19:44 , Processed in 0.104684 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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