| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1880 人关注过本帖
标题:简单的筛选二生素数程序
只看楼主 加入收藏
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
 USE d:\最密四生素数文件\四中和值1.DBF ALIAS 四中和
 kssj=SECONDS()
 FOR i=1 TO 100000
   @ 3,6 say i
   jl=recno()
   
      FOR j=1  TO 5
      s=i*210+(INT(j/2)+j)*30
      SELECT 1
      APPEND BLANK     &&增加一条空记录
      REPLACE szhz WITH s
      ENDFOR
      
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
给最密四中和值置数

素数问题的解决是我学习编程永恒的动力。
7 天前 17:13
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
在VFP中,排序表可以通过使用SORT命令或SELECT语句的ORDER BY子句来实现。
使用SORT命令
打开表:你需要打开你想要排序的表。

使用SORT命令:你可以使用SORT命令对表中的记录进行排序。下面是一个简单的例子,演示如何按照某个字段升序排序:

指定要排序的字段。
指定排序后的新表名称,如果省略,则排序结果将覆盖原表。
指定升序排序,默认即为升序。
指定降序排序。
指定排序时包含的字段列表。
例如,如果你想要按照姓名字段升序排序名为SortedTable的新表,可以使用以下命令:SORT ON 姓名 TO SortedTable。如果你想要按照年龄字段降序排序,可以使用以下命令:SORT ON 年龄 TO SortedTable DESCENDING。如果要对多个字段进行排序,可以这样写:SORT ON 姓名 ASCENDING, 年龄 ASCENDING。这将首先按照姓名字段升序排序,如果姓名相同,则按照年龄字段升序排序。

使用SELECT语句的ORDER BY子句
直接创建战队:CREATE CURSOR 临时表名(字段1 C(3), 字段2 N(5,2))
从SELECT查询语句自动生成:SELECT * RETURNING 表 INTO CURSOR 正式表名 READWRITE
这种方法不会生成新表,VFP关闭后数据库又变回原样,只是建立了一个索引文件。

以上就是在VFP中对表进行排序的几种方法。你可以根据自己的需求选择合适的方法。

素数问题的解决是我学习编程永恒的动力。
6 天前 00:21
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中统计.DBF ALIAS 四中统计
   
   kssj=SECONDS()
   FOR i=1 TO 34
      @ 3,6 say i
        fw=i*446185740
        SELECT 1
        COUNT ALL FOR ssz<fw TO tj
         SELECT 2
         APPEND BLANK     &&增加一条空记录
         REPLACE 区间 WITH i
         REPLACE 范围 WITH fw
         REPLACE 总量 WITH tj
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
统计最密四生素数中项数量(各分段)

素数问题的解决是我学习编程永恒的动力。
5 天前 10:40
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表   SELECT 2   USE d:\最密四生素数文件\四中和值1.DBF ALIAS 四中和值   kssj=SECONDS()   SELECT 1   GO 1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组     FOR i=1 TO 149      @ 9,6 say i      jl=recno()      PUBLIC A      A=ssz        SELECT 1        GO 1        FOR j=1  TO 14923        PUBLIC B        B=ssz        n=A+B        c=INT(n/210)*5        d=(n-210*INT(n/210))/30      IF d<2      SELECT  2      GO   c+d      REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分      ELSE      SELECT  2      GO c+INT((d+INT(d/2))/2)      REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分.之前丢了+1      ENDIF      SELECT 1      skip      ENDFOR      SELECT 1      GO jl+1 ENDFOR    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")分配四中和值

[此贴子已经被作者于2025-6-14 16:09编辑过]


素数问题的解决是我学习编程永恒的动力。
5 天前 11:40
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值1.DBF ALIAS 四中和值
   kssj=SECONDS()
   SELECT 1
   GO 150 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
     FOR i=1 TO 14774
      @ 9,6 say i
      jl=recno()
      PUBLIC A
      A=ssz
        SELECT 1
        GO 1
        FOR j=1  TO 14923
        PUBLIC B
        B=ssz
        n=A+B
        c=INT(n/210)*5
        d=(n-210*INT(n/210))/30
      IF d<2
      SELECT  2
      GO   c+d
      REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO c+INT((d+INT(d/2))/2)
      REPLACE sztj WITH sztj+1&&本次运行(a+b)的平方交叉部分,之前丢了+1
      ENDIF
      SELECT 1
      skip
      ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
上贴,从新编辑后,面目全非

素数问题的解决是我学习编程永恒的动力。
5 天前 16:11
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值3.DBF ALIAS 四中和3
   kssj=SECONDS()
   SELECT 1
   GO 25891 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
     FOR i=1 TO 9879
      @ 9,6 say i
      jl=recno()
      PUBLIC A
      A=ssz
        SELECT 1
        GO 1
        FOR j=1  TO 14923
        PUBLIC B
        B=ssz
        n=A+B
        c=INT(n/210)*5-10623470*2
        d=(n-210*INT(n/210))/30
      IF d<2
      SELECT  2
      GO   c+d
      REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO c+INT((d+INT(d/2))/2)
      REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
      ENDIF
      SELECT 1
      skip
      ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
分配四中和值3段区(1+3,3+1),还有2+2没有计算

素数问题的解决是我学习编程永恒的动力。
5 天前 18:04
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT * FROM 表文件 WHERE 条件

查询满足条件的记录条

素数问题的解决是我学习编程永恒的动力。
5 天前 18:26
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值3.DBF ALIAS 四中和3
   kssj=SECONDS()
   SELECT 1
   GO 14924 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
     FOR i=1 TO 10967
      @ 9,6 say i
      jl=recno()
      PUBLIC A
      A=ssz
        SELECT 1
        GO 14924
        FOR j=1  TO 10967
        PUBLIC B
        B=ssz
        n=A+B
        c=INT(n/210)*5-21246940
        d=(n-210*INT(n/210))/30
      IF d<2
      SELECT  2
      GO   c+d
      REPLACE sztj WITH sztj+1 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO c+INT((d+INT(d/2))/2)
      REPLACE sztj WITH sztj+1&&本次运行(a+b)的平方交叉部分,之前丢了+1
      ENDIF
      SELECT 1
      skip
      ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
单独计算平方项,只有段区和值是偶数时才有。比方3段区,拆分时4=1+3=3+1=2+2,有2+2是同一区间相加,而3+1或1+3是交叉项。

素数问题的解决是我学习编程永恒的动力。
5 天前 18:40
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
 USE d:\最密四生素数文件\四中和值4.DBF ALIAS 四中和4
 SELECT 2
 USE d:\最密四生素数文件\四中和值5.DBF ALIAS 四中和5
 kssj=SECONDS()
 SELECT 1
 GO 1
 FOR i=1 TO 21246940
   @ 3,6 say i
   PUBLIC A
   A=szhz4+446185740
   jl=recno()
      SELECT 2
      APPEND BLANK     &&增加一条空记录
      REPLACE szhz5 WITH A
      SELECT 1
      skip
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
我把150亿分成了34个段区(每个段区包含2个素数23阶乘,即446185740),现在是利用4段区制作5段区(这里边有点绕,虽然是2个素数23阶乘周期,而实际上形成的和值是4个素数23阶乘周期,正好是2倍,它们与前后段区正好交叉一半)。

素数问题的解决是我学习编程永恒的动力。
5 天前 21:12
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:1271
专家分:683
注 册:2016-6-29
收藏
得分:0 
SELECT 1
   USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
   SELECT 2
   USE d:\最密四生素数文件\四中和值4.DBF ALIAS 四中和4
   kssj=SECONDS()
   SELECT 1
   GO 35770 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
     FOR i=1 TO 9143
      @ 9,6 say i
      jl=recno()
      PUBLIC A
      A=ssz
        SELECT 1
        GO 1
        FOR j=1  TO 14923
        PUBLIC B
        B=ssz
        n=A+B
        c=INT(n/210)*5-10623470*3
        d=(n-210*INT(n/210))/30
      IF d<2
      SELECT  2
      GO   c+d
      REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
      ELSE
      SELECT  2
      GO c+INT((d+INT(d/2))/2)
      REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
      ENDIF
      SELECT 1
      skip
      ENDFOR
      SELECT 1
      GO jl+1
 ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
分配最密四中和值,4段区(1+4,4+1),还没有运算4段区(2+3,3+2)

素数问题的解决是我学习编程永恒的动力。
5 天前 22:05
快速回复:简单的筛选二生素数程序
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033489 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved