| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10940 人关注过本帖
标题:优化程序或者从新编写求四生素数中项不能合成的偶数
取消只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 127楼 laowan001
不能连成一个程序也无妨,只是我想把第一步的程序,改成变量赋值那种,整个问题有238表,分成了14块,每块处理17个表,因为前后两个表相互关联,所以,必须重叠一个表,即需要首尾相衔接,所以,实际上是处理18个表。每次处理前,都是手工把工作区,编上号码,表名称,及别名。我想实现,第一次把工作区,表名,别名设计好后,第二次外循环时,工作区,表名,别名同时改成第二次的。如第一次处理1至18的偶数周期表,第二次处理18到35的表,第三次处理35到51的表,依次类推,主要想知道有什么语句可以根据外循环值,把工作区号,表名,别名给改写了,不在每一个外循环都手工去改。

素数问题的解决是我学习编程永恒的动力。
2021-11-16 16:49
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 127楼 laowan001
125楼是第九次外循环。当进入第十次外循环时,如何不用手工,直接进入下一次的处理,就是工作区号,表名,别名,变成153至170。当然这种处理时,需要每次外循环后,输出一个无偶数总表出来存上,以便以后做后期处理(第二步,第三步,第四步的处理),也就是说,如何先把第一步,一次性处理完。

素数问题的解决是我学习编程永恒的动力。
2021-11-16 17:11
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 132楼 laowan001
你理解的不错,在整个问题上是第二步。
第一步是制作偶数周期表(即参与运算的元素,两两相加的和值,相同的偶数只保留一个)。
当把偶数制作完成后,开始处理这238个偶数周期表,17个一组(实际上,除了第一次外循环外,都是18个一组,因为第二次外循环时,要把上一次的最后一个表连上,即从上一次外循环的最后一个表开始,加上本次的,共计18个偶数周期表),这步的处理是,比对周期表中与那五类值没有的数值,即找出来,例如偶数表2中有30,120,210,300,380;但是没有180这个值,在210周期内,应该能合成30,(60),90,120,(150),180,210;这五个值,小括号内的不能被合成,不在考虑之内。在5个可以被合成数中,90无解,180无解,这些值会存放到:无偶数表总表,中。当把本次的2至17个偶数表,排查完,就完成了本次整体循环。
    如果,我想运行下一个外循环值(即第二组,偶数周期表17,到偶数周期表34),这时我需要把第一的表,手工改成它们(原来的第一次是偶数周期表2至 偶数周期表17),现在变成偶数周期表17,至偶数周期表34;接下来执行第三组,偶数周期表34,至偶数周期表51;.....,在这个上一组数据,到下一组数据中,我是手工改写的工作区,表名,及别名。
     先生既然有了语句直接打开一个空闲工作区,那就不用考虑工作区号问题了;表别名也省略了,那么表别名也不用考虑了,只考虑如何把表名称改写成下一组表名即可。
      因为第一次外循环,与后边的外循环不配套,所以可以从第二组(第二个外循环开始),第二组处理数据为表17到表34;第三组处理数据为:表34到表51;第四组处理数据为表51到表68;....,以此类推,第14组处理数据为:表221到表238.可以看出,每次实际上是处理18个表(总有一个表与上次交叉)。
     我是手工改写14次,完成这项工作的,现在想两次完成这项工作,第一次处理第一组数据,表2到表17;第二步完成第二组数据到第14组数据(每组处理18个偶数周期表),问第二步如何用变量赋值,把表名改成当次处理的表名。

素数问题的解决是我学习编程永恒的动力。
2021-11-16 22:06
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 134楼 laowan001
不是方法的要求。目的是缩小表的容量,表太大,有时会超过vfp的极限。也可以说,是人为的,根据数据量的大小而定,分步处理,为好多类似问题考虑,有的情况下,可能一次就能处理完毕,也不需要分组(划段)处理;但是有的情况下,分成14块也不行,可能划分成100组,都是根据具体情况而定。

素数问题的解决是我学习编程永恒的动力。
2021-11-16 22:13
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 134楼 laowan001
与打开的表多少无关,只是与数据量的大小有关(vfp可以最多有32767个工作区,而实际上最多同时打开255个工作区,是这样吗?无论是与不是,我的算法要求分成若干组(块)进行处理,而不是一次性处理,无论从数据量上,vfp的上限上,最重要的是想处理类似问题,每种类似问题,大多情况下数据量较大,不宜一次处理)。
    至于划分14个板块,还是20个,或者其他的板块数,除了数据量的考虑外,还要考虑它是不是表总数(238个表)的约数,14*17=238,如果用20,就不能分成标准的14个外循环值(一个外循环值,处理一个组,一段连续的表)。

素数问题的解决是我学习编程永恒的动力。
2021-11-16 22:25
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 132楼 laowan001
在这种处理中,还要考虑一个问题,外循坏一次,要存一次无偶数总表,所以每次需要给它一个表名,不要提前建表,每次外循环后,创建一个表盛放数据即可。
     把这第二步处理完,剩下的活,就简单了。

素数问题的解决是我学习编程永恒的动力。
2021-11-16 22:29
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 139楼 laowan001
直接用j也行。你这楼引用的是第12次外循环,在手工改两次就全部完成了。这只是14个外循环,每次改动18个表名,但是如果在多,这样手工改写表名就不现实了。在第一步时,反复改写程序才使产生的偶数周期表名与外循环值相关联。

素数问题的解决是我学习编程永恒的动力。
2021-11-17 08:37
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 141楼 laowan001
对!在内循环体中一次用到一个表,内循环是18次(因为需要上一个外循环的最后一个表也参与其中)。外循环一次,调动内循环18个表(增量是17个表),从第二个外循环值设计就好,不需要考虑第一个外循环,因为那个需要单独处理。

素数问题的解决是我学习编程永恒的动力。
2021-11-17 09:15
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 142楼 laowan001
是239那个表。因为外循环一次,就结束了,要想运行下一个外循环,就得手工改写18个表名。对于无偶数总表来说,打开,导出到一个新表即可,表名:无偶数总表12(假如是第12次外循环),然后清空表即可,可以反复利用。

素数问题的解决是我学习编程永恒的动力。
2021-11-17 09:26
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 142楼 laowan001
外循环一次完成后,也可以把表239(无偶数总表)抄写在无偶数总表i中(i为外循环次数),进入下一个外循环前删除记录即可(变成空表,无记录)。

素数问题的解决是我学习编程永恒的动力。
2021-11-17 11:00
快速回复:优化程序或者从新编写求四生素数中项不能合成的偶数
数据加载中...
 
   



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

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