标题:优化程序或者从新编写求四生素数中项不能合成的偶数
只看楼主
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 49楼 吹水佬
是数学家们玩的东东,不过用它作为一个素材,练练编程,也不是不可以。我把所用到的表已经传了上来,大致思路也说了下,能不能编写出来程序是回事儿,得到,得不到结论是另一回事。
     以吹水佬版主的编程能力来说,编个这个,还是容易办到的。
     希望吹水佬版主,以最后的编写思路,弄出个程序来。把有解的揪出来即可(反其道而行,不找无解的,找至少有一组解的偶数,也就是,每次加法结果,都去重)。

素数问题的解决是我学习编程永恒的动力。
2021-10-22 12:38
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
用VFP做这方面的东东就免了,运行效率和数据规模都很有限。
建议用C
2021-10-22 13:06
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 52楼 吹水佬
实际上,为了去包袱,已经把它分成了,50块,应该多少有点改进;如果可行的话,打分成500块,每段处理1千万区间段的数据,可以足够快,一共就102949个数据,除500后,平均每次处理数据,仅仅206个,对于现在的vfp来说,也是小菜一碟,不至于那样无用。再说了,一个加法运算,所费时间,无非就是一个去重过程,至于存表过程,应该可以忽略不记。打分的越多,处理速度越快。不行,分成1000个批次处理也是可以,有点过激思想,其实真的没有那么夸张,分成50批次处理,也是可以的。

素数问题的解决是我学习编程永恒的动力。
2021-10-22 15:34
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四生素数中
SELECT 2
USE D:\三角递增法\各段四生素数个数细分.DBF ALIAS 四生个数细分
kssj=SECONDS()
SELECT 1
     For j=1 to 500
      @ 3,6 say j
      fw=j*10^7
            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,"运行时间提示")
这是把四生素数中项表分成了500等份。

素数问题的解决是我学习编程永恒的动力。
2021-10-22 19:23
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
四生素数表分段计数.zip (3.52 KB)

这是把四生素数表分成了500个区间,总个数,及分个数。

素数问题的解决是我学习编程永恒的动力。
2021-10-22 19:32
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
SELECT [ALL| DISTINCH TOP nExpr IPERCENITI
Select_List Item L .- FROM [FORCE] Table_List Item L.-]
[WITH(BUFFERING =IExpr] IlJoinType] JOIN DatabaseName!]
Table [[AS] LocaLAlias]
[ON JoinCondition [ANDOR JoinCondition!FilterCondition]...]
[WHERE JoinConditionFilterCondition ANDOR JoinCondition! FilterCondition] ...]
[GROUP BY Column List Item L ...]]
[HAVING FilterCondition [ANDIOR ..]I[UNION [ALL] SELECTCommand]
[ORDER BY Order_Item [ASCIDESC] [.....]]
[StorageDestinationDisplayDestination]
[PREFERENCE PreferenceName] INOCONSOLE] [PLAINJINOWAIT
JoinType-INNERILEFTRIGHTI FULL [OUTER]
StorageDestination -INTO [ARRAY ArrayName!
CURSOR CursorName[NOFILTER!READWRITE]ITABLE TableName]
DisplayDestination-TO [FILE FleName [ADDITIVE]
IPRINTER PROMPTISCREENJSELECT [ALL| DISTINCH
TOP nExpr IPERCENITI Select_List Item L .-
FROM [FORCE] Table_List Item L.-][WITH(BUFFERING =IExpr] IlJoinType]
JOIN DatabaseName!]Table [[AS] LocaLAlias]
[ON JoinCondition [ANDOR JoinCondition!FilterCondition]...]
[WHERE JoinConditionFilterCondition ANDOR JoinCondition! FilterCondition] ...]
[GROUP BY Column List Item L ...]]
[HAVING FilterCondition [ANDIOR ..]I[UNION [ALL] SELECTCommand]
[ORDER BY Order_Item [ASCIDESC] [.....]][StorageDestinationDisplayDestination]
[PREFERENCE PreferenceName] INOCONSOLE] [PLAINJINOWAIT
JoinType-INNERILEFTRIGHTI FULL [OUTER]
StorageDestination -INTO [ARRAY ArrayName!
CURSOR CursorName[NOFILTER!READWRITE]ITABLE TableName]
DisplayDestination-TO [FILE FleName [ADDITIVE]IPRINTER PROMPTISCREENJ
分界
选择[ all | distinch top nexpr iperceniti select _ list item l。-
from [ force ] table _ list item l.-][ with (buffering = iexpr ] iljointype ]
join databasename! ][[ as ] localalias ][ on joincondition [ andor joincondition! filtercondition ] ... ]
[ where joinconditionfiltercondition 和/或 joincondition![过滤条件] ... [按列列表项目 l... ][具有过滤条件[安迪或]。.
]I [ union [ all ] selectcommand ][ order by order item [ ascidesc ][ ... ]
[ storagedestinationdisplaydestination ][ preference preferencename ] inoconsole ][ plainjinowait jointype-innereftrighti full [ outer ]
storagedestination-into [ array arrayname!光标修改名称[ nofilter! readwrite ] itable tablename
显示目的地到[ file flename [ additive ] iprinter prompttiscreenjselect [ all |
distinch top nexpr iperceniti select _ list item l。- from [ force ] table _ list item l.-]
[ with (buffering = iexpr ] iljointype ] join databasename! ][[ as ] localalias ]
[ on joincondition [ andor joincondition! filtercondition ] ... ][ where joinconditionfiltercondition
和/或 joincondition![过滤条件] ... [按列列表项目 l... ][具有过滤条件[安迪或]。.]I [ union [ all ]
selectcommand ][ order by order item [ ascidesc ][ ... ][ storagedestinationdisplaydestination ][ preference preferencename ]
inoconsole ][ plainjinowait jointype-innereftrighti full [ outer ] storagedestination-into [ array arrayname!
光标曲线名[ nofilter! readwrite ] itable tablename 显示目的地到[文件 flename [ add ]打印机提示符
二次分界
所有 distinch top nexpr iperceniti 选择列表项目从强制表列表项目与缓冲 iexpr iljointypejoin
数据库名称!作为当地的合并条件或合并条件!其中连接条件过滤条件

我把所有的选择命令按顺序合并到一个项目 ascidesstorage/目的地/目的地/目的地优先选择名称控制台 jinowait jointype/innereftrighti full outer
/目的地/目的地/目的地/目的地/目的地/目的地/目的地/目的地/

文件名添加剂 iprinter prompttiscreenjselect all distinch top nexpr iperceniti select list item
from force table list item with buffering iexpr iljointype join databasename!作为当地的合并条件或合并条件!过滤条件,其中连接条件过滤条件
I union all select command order by order item ascidesc storage/目的地/目的地/目的地/目的地/目的地/目的地/目的地/目的地/
目的地/目的地/目的地/目的地/目的地/目的地/目的地/目的地/目的地!
有时一条语句,也够人折腾的。不懂外语的悲哀!

素数问题的解决是我学习编程永恒的动力。
2021-10-22 19:59
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
uPDATE[DatabaseName1!]TableName1 SET Column_Name1 - elscoression1LColumn_Name2 = eExpression2 ..] WHERE FiterCondition1[ANDOR FilterCondition2 ...]]
更新数据库名称表名称集列名称 elscoression 列名称表达式其中 fitercondition 和/或 filtercondition
螺旋压缩
稳定条件 适配条件
在线翻译结果,大概意思不错,没有形成似是而非。

素数问题的解决是我学习编程永恒的动力。
2021-10-22 20:08
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
select * from 偶数表实验.dbf distinct into table 偶数唯一表
这个简单语句,可以实现去重,留唯一的删除过程,只有一条的保留,一条以上的留下一个代表。

素数问题的解决是我学习编程永恒的动力。
2021-10-22 21:58
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
方法总会有的。在最里两层循环完,加上上楼语句;
当第二层循环完,再加上第二层语句(改一下存表名称即可。)

素数问题的解决是我学习编程永恒的动力。
2021-10-22 22:16
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 59楼 独木星空
总认为,已经找到了问题的答案,可是真的用时,发现仍就有过不去的坎。

素数问题的解决是我学习编程永恒的动力。
2021-10-23 05:27



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




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

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