数学中国

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

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

  [复制链接]
发表于 2021-10-18 21:35 | 显示全部楼层
sort to 偶数表升序 on 偶数
对dbf排序,存到一个新表中。
回复 支持 反对

使用道具 举报

发表于 2021-10-18 21:37 | 显示全部楼层
SELECT 1
USE D:\三角递增法\偶数表升序.DBF ALIAS 偶数表升序
SELECT 2
USE D:\三角递增法\偶数升序表.DBF ALIAS 偶升表
kssj=SECONDS()
SELECT  1
GO 1
oushu=偶数
SELECT 2
         APPEND BLANK     
         REPLACE 偶升 WITH   oushu
For i=1 to 10294899
      @ 5,12 say i
    SELECT  1     &&打开盛放素数式的表
    jl=recno()
    PUBLIC A
    A=偶数
    SKIP
    PUBLIC B
    B=偶数
         IF B-A>0
         SELECT 2
         APPEND BLANK     
         REPLACE 偶升 WITH B
         endif   
   SELECT 1
   GO jl+1
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
整理偶数表,去掉重复数据。
回复 支持 反对

使用道具 举报

发表于 2021-10-18 22:19 | 显示全部楼层
Select A.* Into Table d:\三角递增法\偶数表升序1 From 偶数表 A Inner Join (Select 偶数 From 偶数表 Group By 偶数 Having Count(*)=1) B On A.偶数=B.偶数
这个语句可以把,制作出来的偶数表,重新整理,去重了,不知道是否排列序。
回复 支持 反对

使用道具 举报

发表于 2021-10-18 23:37 | 显示全部楼层
如果是 VFP9.0

1 Select A.* Into Table 新表名 From 你的表名 A Inner Join ;
2 (Select 姓名,学校,性别 From 你的表名 Group By 姓名,学校,性别 Having Count(*)=1) B ;
3 On A.姓名=B.姓名 And A.学校=B.学校 And A.性别=B.性别
三步是连在一起的,一个语句体,把分号去掉即可,更换表名,及字段名。如果想把新建表存放在当前路径下,需要指明路径,否则默认是存在VFP的根目录中的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-19 16:00 | 显示全部楼层
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE D:\三角递增法\偶数表.DBF ALIAS 偶数表
kssj=SECONDS()
SELECT  1
GO 1101
For i=1 to 200
      @ 5,12 say i
    SELECT  1     
    jl=recno()
    PUBLIC A
    A=四中
          SELECT  1
          GO 1100+i
          For j=1 to 101850-i
          @ 15,22 say j
          PUBLIC B
          B=四中
          C=A+B
              SELECT 2
              APPEND BLANK   
              REPLACE 偶数 WITH C   
           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,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-10-19 21:30 | 显示全部楼层
1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四中表
SELECT 2
USE D:\三角递增法\四生素数表中分层.DBF ALIAS 四中表分层
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 102949
      @ 5,12 say i
    SELECT  1   
    && jl=recno()
    PUBLIC A
    A=四中
    B=INT(A/210)
    C=MOD(A,210)
         SELECT 2
         APPEND BLANK     
         REPLACE 整数 WITH B
         REPLACE 余数 WITH C
   SELECT 1
   skip
   ENDFOR
    =MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-10-19 21:49 | 显示全部楼层
SELECT 1
USE D:\三角递增法\四生素数表中分层.DBF ALIAS 四中表分层
SELECT 2
USE D:\三角递增法\偶数双表.DBF ALIAS 偶数双表
kssj=SECONDS()
SELECT  1
GO 1
For i=1 to 1000
      @ 5,12 say i
    SELECT  1     
    jl=recno()
    A=整数
    B=余数
          SELECT  1
          GO 1
          For j=1 to 1000
          @ 15,22 say j
          C=整数
          D=余数
          E=A+C+INT((B+D)/210)
          F=MOD(B+D,210)
              SELECT 2
              APPEND BLANK   
              REPLACE 偶整 WITH E  
              REPLACE 偶余 WITH F
           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,"运行时间提示")
回复 支持 反对

使用道具 举报

发表于 2021-10-19 22:05 | 显示全部楼层
Select A.* Into Table d:\三角递增法\偶数双表简 From 偶数双表 A Inner Join (Select 偶整,偶余 From 偶数双表 Group By 偶整,偶余 Having Count(*)=1) B On A.偶整=B.偶整 AND A.偶余=B.偶余
不知是否正确,在1000*1000个四生素数中,合成了只有512种结果,也太巧合了。
回复 支持 反对

使用道具 举报

发表于 2021-10-20 08:40 | 显示全部楼层
CLOSE DATA
USE d:\三角递增法\偶数双表.dbf && 设源表的名称为“表1”
P=''
FOR K=1 TO FCOUNT()
P=P+IIF(EMPTY(P),'',',')+FIELDS(K) && 取得表中所有字段名称,放在 P 中
ENDFOR
SELECT *,COUNT(FIELDS(1)) AS 相同记录数 FROM DBF() GROUP BY &P. INTO DBF 相同记录数 && 取得各记录的相同记录数及其各字段值
SELECT * FROM DBF() WHERE 相同记录数>1 && 该查询结果详细列举了表1中各重复记录的 重复数
默认情况下,新表是储存在vfp的根目录中的。
回复 支持 反对

使用道具 举报

发表于 2021-10-20 12:47 | 显示全部楼层
SELECT 1
USE D:\三角递增法\四生素数表中.DBF ALIAS 四生素数中
SELECT 2
USE D:\三角递增法\各段四生素数个数.DBF ALIAS 四生个数
kssj=SECONDS()
SELECT 1
     For j=1 to 50
      @ 3,6 say j
      fw=j*10^8
            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,"运行时间提示")
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 13:48 , Processed in 0.082050 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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