标题:优化程序或者从新编写求四生素数中项不能合成的偶数
只看楼主
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE D:\三角递增法\各段四生素数个数.DBF ALIAS 四生个数表
SELECT 3
USE D:\三角递增法\偶数表新.DBF ALIAS 偶数表新
kssj=SECONDS()
bwjm="偶数唯一表"
 For i=17 to 18
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
       SELECT 3
       DELETE ALL
       PACK
       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=四中
               jl=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 
                 B=四中
                 C=A+B
                 SELECT 3
                 APPEND BLANK   
                 REPLACE 偶数 WITH C   
                 SELECT 1
                 SKIP
                 ENDFOR
               SELECT 1
               GO jl+1
             ENDFOR   
          ENDFOR
       SELECT 3
       select * from 偶数表新.dbf DISTINCT INTO table d:\三角递增法\&wd
      
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这个程序可以正常运行了,用时8分37.46秒

素数问题的解决是我学习编程永恒的动力。
2021-10-24 18:43
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 71楼 独木星空
看来,什么也有失控的时候,刚说,程序可以正常运行了,可无法把话收回,接着执行,一次也没有成功。

素数问题的解决是我学习编程永恒的动力。
2021-10-24 21:38
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE D:\三角递增法\各段四生素数个数.DBF ALIAS 四生个数表
SELECT 3
USE D:\三角递增法\偶数表新.DBF ALIAS 偶数表新
kssj=SECONDS()
bwjm="偶数唯一表"
 For i=26 to 27
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
       SELECT 3
       DELETE ALL
       PACK
       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=四中
               jl=recno()
                 SELECT  1
                 GO zgs2-fgs2+1  &&因为有一条空记录,所以总数--减本段,就是本段起数
                 For k2=1 to fgs2
                 
                 B=四中
                 C=A+B
                 SELECT 3
                 APPEND BLANK   
                 REPLACE 偶数 WITH C   
                 SELECT 1
                 SKIP
                 ENDFOR
               SELECT 1
               GO jl+1
             ENDFOR   
          ENDFOR
           SELECT 3
           use  D:\三角递增法\偶数表新.dbf
           BROWSE LAST
          && OPEN DATABASE D:\三角递增法\偶数表新
       select * from  D:\三角递增法\偶数表新.dbf DISTINCT INTO table d:\三角递增法\&wd
      USE IN &wd
      SELECT 3
      USE D:\三角递增法\偶数表新.dbf
       && CLOSE DATABASES D:\三角递增法\偶数表新
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这个程序可以正常运行了!不知道,是否还会出现第二次开玩笑不?改变,一下外循环值,再出现其他的对话框,提示语,我真的就无语了。运行时间:11分51.56秒。
    以前,对话框:打开那个表,手动选择:偶数表新;
    提示:已经在另一个工作区打开
    提示:有不能识别的短语

素数问题的解决是我学习编程永恒的动力。
2021-10-25 06:58
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
运行  For i=26 to 27
用时,13分15.22秒,没有再出现各种情况(不能正常运行情况)。
稍作,改变,可以用于求歌猜数。

素数问题的解决是我学习编程永恒的动力。
2021-10-25 08:46
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
这方面的问题,人们一遇到,就退避三舍。

素数问题的解决是我学习编程永恒的动力。
2021-10-25 10:10
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE G:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE G:\三角递增法\各段四生素数个数细分.DBF ALIAS 四生个数表细分
SELECT 3
USE G:\三角递增法\偶数表新.DBF ALIAS 偶数表新
kssj=SECONDS()
bwjm="偶数唯一表"
 For i=21 to 30
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
       SELECT 3
       DELETE ALL
       PACK
       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=四中
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=四中
                 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 G:\三角递增法\&wd
      USE IN &wd
      SELECT 3
      USE IN 3
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
这是移到外储存硬盘,运行的程序,10个外循环值,用时:6分8.94秒。
有一小点,需要每次选择一下:偶数表新,然后,确定。10次手动,怎么解决?

素数问题的解决是我学习编程永恒的动力。
2021-10-25 14:17
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 

素数问题的解决是我学习编程永恒的动力。
2021-10-25 14:47
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
没有人帮助,更不会有人欣赏,真的应了,吹水佬版主那句话,自己在自导自演。

素数问题的解决是我学习编程永恒的动力。
2021-10-25 14:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用独木星空在2021-10-25 14:50:23的发言:

没有人帮助,更不会有人欣赏,真的应了,吹水佬版主那句话,自己在自导自演。

被点名了,吹水也要回。
首先声明没说过“自导自演”,说“自问自答”也是事出有因。
求帮助,先要把问题说清楚,出“填空”题有点难为想帮的人。
之前就回复过,素数的问题对一般人可能兴趣不大,甚至认识也不深,尤其是一些概念的东西,不是有个名就算了,一定要严格解释清楚。
探讨问题要多点互动,不要玩套路,要集百家之长。



2021-10-25 16:11
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE G:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE G:\三角递增法\各段四生素数个数细分.DBF ALIAS 四生个数表细分
SELECT 3
USE G:\三角递增法\偶数表新.DBF ALIAS 偶数表新
kssj=SECONDS()
bwjm="偶数唯一表"
 For i=65 to 66
      @ 5,12 say i
      wd=bwjm+ALLTRIM(STR(i-1))
      USE IN 3
      USE G:\三角递增法\偶数表新.DBF ALIAS 偶数表新
       SELECT 3
     
       DELETE ALL
       PACK
       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=四中
               jl1=recno()
                 SELECT  1
                 GO zgs2-fgs2+1
                 For k2=1 to fgs2
                 jl2=recno()
                 B=四中
                 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 G:\三角递增法\&wd
      USE IN &wd
      SELECT 3
      USE IN  3
    ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
圆满完成任务。
一分耕耘一分收获。
功夫不负有心人。

素数问题的解决是我学习编程永恒的动力。
2021-10-25 22:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507201-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.206209 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved