数学中国

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

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

  [复制链接]
 楼主| 发表于 2016-8-8 23:16 | 显示全部楼层
本帖最后由 白新岭 于 2016-8-9 09:04 编辑

统计19中16个的重复次数

CLEAR ALL
SELECT 1
USE E:\用vfp求k生素数数量\升序代数数19.DBF ALIAS 升序代数数19
SELECT 2
USE E:\用vfp求k生素数数量\统计升19中差距16的重复次数.dbf ALIAS 统计升19中差距16的重复次数
SELECT 统计升19中差距16的重复次数
go top
DO WHILE not eof()
    PUBLIC A
     A=差距16的值
     SELECT 1
     PUBLIC B
     COUNT for 间隔16=A to B
     SELECT 统计升19中差距16的重复次数
     REPLACE 重复次数 WITH  B
     skip
enddo
CLEAR ALL               
这是两个表,其中一个表(升序代数数19)放着[差距16的值]字段        ;另一个表(统计升19中差距16的重复次数),预先放上所有可能出现的值[间隔16],同时放一个字段[重复次数]来盛放统计结果。
 楼主| 发表于 2016-8-8 23:17 | 显示全部楼层
寻找点序列

*ALL表示所有记录
*NEXT(n)从当前记录起的N个记录
*RECORD(N)第N个记录
*REST从当前记录起到最后一条记录
CLEAR ALL
SELECT 1
USE E:\用vfp求k生素数数量\查询13中的3家村.dbf ALIAS 查询13中的3家村
SELECT 2
USE  e:\用vfp求k生素数数量\k家村的间距.dbf ALIAS k家村的间距
DO WHILE NOT EOF()
        PUBLIC A
        A=代数13
        PUBLIC B
        B=recno()
        PUBLIC D
        COUNT NEXT 5 FOR 间距13=2 TO D
        IF D=3
           SELECT 查询13中的3家村
           APPEND BLANK
           REPLACE 在13中3 WITH A
           REPLACE 在13中的位置 WITH B
           SELECT k家村的间距
        endif
    go B
    SKIP
ENDDO
CLEAR ALL
 楼主| 发表于 2016-8-9 12:43 | 显示全部楼层
USE  e:\用vfp求k生素数数量\升序代数数19.dbf
    go 16
SELECT 升序代数数19
PUBLIC A
A=间隔16
          skip
          PUBLIC B
          B=间隔16
       PUBLIC  E
       if A>B
         E=A
       else
         E=B
       endif
    skip
    DO WHILE NOT EOF()
    PUBLIC C
    C=间隔16
    if E>C
       E=E
       else
       E=C
    endif
     skip
ENDDO
?E
这是用vfp求一列数据中最大值或最小值问题,需要变动一下
这是请教一个编程问题中的一个帖子
 楼主| 发表于 2016-8-10 21:11 | 显示全部楼层
CLEAR ALL
SELECT 1
USE E:\用vfp求k生素数数量\生成初始值23.dbf ALIAS 生成初始值23 &&当每增倍一个素数周期就改成下一个表名(改成带下一个素数数字的表
SELECT 2
USE E:\用vfp求k生素数数量\生成初始值19.DBF ALIAS 生成初始值19 &&同上
*INPUT "请输入外循环开始值 wxhks=" TO wxhks
*INPUT "请输入外循环结束值 wjs=" TO wjs
*INPUT "请输入内循环开始值 nks=" TO nks
*INPUT "请输入内循环结束值 njs=" TO njs
GO Top
FOR h=1 TO 36855  &&外循环终值改成下边选择的工作区表中的记录总数
        SELECT 生成初始值19 &&同第一条注释
        FOR j=0 TO 22  &&改成下一个素数-1
                bpz=生成元19+j*9699690      &&注意这条语句中的“初始值”---改成字段名
                qmz=MOD(bpz,23)  &&用新增加的素数值
                IF qmz=0 OR qmz=2 OR qmz=6 OR qmz=8
                ELSE
                        SELECT  生成初始值23 &&同第一条注释
                        APPEND BLANK
                        REPLACE 生成元23 WITH bpz &&改成本次追加记录的字段名
                        SELECT 生成初始值19 &&同第一条注释
                ENDIF
        ENDFOR
        SKIP
ENDFOR
CLEAR ALL                               
这是一个内外循环程序,中间是用条件函数判断,把有数据的表放在内循环,把增加周期放在外循环。
 楼主| 发表于 2016-8-10 21:11 | 显示全部楼层
CLEAR ALL
SELECT 1
USE E:\用vfp求k生素数数量\生成初始值23.dbf ALIAS 生成初始值23 &&当每增倍一个素数周期就改成下一个表名(改成带下一个素数数字的表
SELECT 2
USE E:\用vfp求k生素数数量\生成初始值19.DBF ALIAS 生成初始值19 &&同上
*INPUT "请输入外循环开始值 wxhks=" TO wxhks
*INPUT "请输入外循环结束值 wjs=" TO wjs
*INPUT "请输入内循环开始值 nks=" TO nks
*INPUT "请输入内循环结束值 njs=" TO njs
GO Top
FOR h=1 TO 36855  &&外循环终值改成下边选择的工作区表中的记录总数
        SELECT 生成初始值19 &&同第一条注释
        FOR j=0 TO 22  &&改成下一个素数-1
                bpz=生成元19+j*9699690      &&注意这条语句中的“初始值”---改成字段名
                qmz=MOD(bpz,23)  &&用新增加的素数值
                IF qmz=0 OR qmz=2 OR qmz=6 OR qmz=8
                ELSE
                        SELECT  生成初始值23 &&同第一条注释
                        APPEND BLANK
                        REPLACE 生成元23 WITH bpz &&改成本次追加记录的字段名
                        SELECT 生成初始值19 &&同第一条注释
                ENDIF
        ENDFOR
        SKIP
ENDFOR
CLEAR ALL                               
这是一个内外循环程序,中间是用条件函数判断,把有数据的表放在内循环,把增加周期放在外循环。
 楼主| 发表于 2016-8-13 12:55 | 显示全部楼层
33生素数,跨度为152,结构式14种(相邻素数差的排列),相邻素数差值最大为14,最小为2.
在周期23内(2*3*5*7*11*13*17*19*23,即223092870内),其不同的排列顺序的数量如下:(有1的后边跟一个数字是其相邻素数差,没有的就是一个数字(2,4,6,8)其中之一。连数是把相邻差连接起来(共有32个差值),以后个贴的表示意义与此贴一致,可以看出,随周期的翻倍,其K生素数式数量也是以整数翻倍。
23中       
连接数        计数项:2
24246264246626664684624864846266        4
24248106248666462646210210242462642        2
2424864624626664626461221242462642        6
2424864666266646264621021026462642        8
2462642412212646264666264264684242        6
24626424210210264626466684261084242        2
24626424662666468462486484626642        4
2462646210210264626466626664684242        8
24626642468424122124210264246626426        4
24662648468426486466626642462642        4
2642466264264684242414462102664662        8
2664662102641442424864624626642462        8
62462664246210241221242486424662642        4
66264846842648646662664246264242        4
总计        72
 楼主| 发表于 2016-8-13 12:57 | 显示全部楼层
29中       
连接数        计数项:2
24246264246626664684624864846266        12
24248106248666462646210210242462642        12
2424864624626664626461221242462642        30
2424864666266646264621021026462642        32
2462642412212646264666264264684242        30
24626424210210264626466684261084242        12
24626424662666468462486484626642        16
2462646210210264626466626664684242        32
24626642468424122124210264246626426        20
24662648468426486466626642462642        16
2642466264264684242414462102664662        24
2664662102641442424864624626642462        24
62462664246210241221242486424662642        20
66264846842648646662664246264242        12
总计        292
 楼主| 发表于 2016-8-13 12:58 | 显示全部楼层
31中       
连接数        计数项:2
24246264246626664684624864846266        60
24248106248666462646210210242462642        60
2424864624626664626461221242462642        180
2424864666266646264621021026462642        192
2462642412212646264666264264684242        180
24626424210210264626466684261084242        60
24626424662666468462486484626642        96
2462646210210264626466626664684242        192
24626642468424122124210264246626426        120
24662648468426486466626642462642        96
2642466264264684242414462102664662        72
2664662102641442424864624626642462        72
62462664246210241221242486424662642        120
66264846842648646662664246264242        60
总计        1560
 楼主| 发表于 2016-8-13 12:58 | 显示全部楼层
37中       
连接数        计数项:2
24246264246626664684624864846266        540
24248106248666462646210210242462642        600
2424864624626664626461221242462642        1980
2424864666266646264621021026462642        2112
2462642412212646264666264264684242        1980
24626424210210264626466684261084242        600
24626424662666468462486484626642        960
2462646210210264626466626664684242        2112
24626642468424122124210264246626426        1320
24662648468426486466626642462642        960
2642466264264684242414462102664662        720
2664662102641442424864624626642462        720
62462664246210241221242486424662642        1320
66264846842648646662664246264242        540
总计        16464
 楼主| 发表于 2016-8-13 17:47 | 显示全部楼层
本帖最后由 白新岭 于 2016-8-13 10:30 编辑

9生素数式在7内为6组,到11时,共有余数6*9*11分配到11种余数上去,所以不同组中余数个数和为6*9*11/11=6*9=54个,因为跨度INT(30/11)=2,所以每组中出现同一个余数的次数最多是2,而且每组中只可能有1个余数出现两次,在同一组都有3种余数不出现,7种种余数出现1次(1种余数*2次+7种余数*1次+3种余数*0次=9个余数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 09:23 , Processed in 0.093750 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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