数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: 白新岭

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

[复制链接]
 楼主| 发表于 2010-5-21 08:24 | 显示全部楼层

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

我昨天已用他编的程序在自己的电脑上进行了运行,并得到了我需要的数据。
经过稍微改动可以求任意k生素数群的实际数据,只要计算机的各方面技术条件能满足要求就可以实现。
 楼主| 发表于 2010-5-26 17:02 | 显示全部楼层

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

虽然用编程从理论上可以得到任意k生素数群的实际数据,但是计算机是无法找完所有k生素数群的,因为任何一类k生素数群的数量都是无限多的。
在就是,即便限制住范围,在较短时间内也无法完成。
 楼主| 发表于 2010-6-1 17:59 | 显示全部楼层

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

这是求最密5生素数群的程序。
CLEAR ALL
SELECT 1
USE E:\用vfp求k生素数数量\最密5生素数群.DBF ALIAS 最密5生素数
SELECT 2
USE E:\用vfp求k生素数数量\素数表2.DBF ALIAS 素数表
SELECT 3
USE E:\用vfp求k生素数数量\k5生成初始值23.DBF ALIAS 生成初始值23
*INPUT "请输入预先值 K= " TO yxk
*INPUT "请输入步长值 bcz= " TO bcz
*INPUT "请输入初始值 csz= " TO csz
*INPUT "请输入外循环起始值 xks= " TO xks
*INPUT "请输入外循环终结值 zds= " TO zds
GO top                                    &&***************这条语句是将“k8生成初始值31”表的指针移到“41001”处**************
DO WHILE NOT EOF()                          &&*********既然是调用表中信息,而且是后部分,就应该使用“DO WHILE NOT EOF()”语句,由它来判断是否到文件尾**********
@ 2,5 say RECNO()                       &&显示记录号
scy=生成元23                            &&计算被判断值
For i=1 to 2
bpz=scy+i*223092870
Kf=INT(SQRT(bpz))                       &&求出被判断值的开方根
SELECT 素数表                         &&打开素数表
LOCATE FOR 素数>=kf                     &&根据开方根,查找最大素数
DO CASE
CASE EOF()                          &&如果超出素数表最后一条记录
GO BOTTOM
CASE 素数>kf                        &&如果找到的素数比开方根值大,就将记录指针退回一个,保证使用的最大素数在开方根内
SKIP -1
ENDCASE
SSS=RECNO()                             &&记录下最大素数(开方根内)记录位置(如果找到的素数等于开方根,则直接读取这个素数的位置)
GO 9                                   &&从第二条记录开始读取素数(37)
FOR j=9 TO SSS                         &&内循环开始。这个循环实质上是从小到大顺序,依次读取素数。循环值是记录序号
qmz=MOD(bpz,素数)                   &&以读取的素数为条件,对被判断值求模 【qmz=MOD(bpz,素数)】文本号括着的原在此行语句体部分.特别需要注意的是在用标点符号时,一定改成英文模式及半角状态。
IF qmz=0 OR qmz=2 OR qmz=6 OR qmz=8 OR qmz=12
EXIT         
ENDIF
SKIP                                &&素数表指针向下移动一个
ENDFOR
IF j>sss
SELECT  最密5生素数                 &&打开保存求解结果的信息表
APPEND BLANK                        &&增加一条空记录
        REPLACE 被判值 WITH bpz             &&将被判断值保存到被判断值字段中(被判断值数据栏)
REPLACE 开方根 WITH kf              &&将开方根保存到开方根字段中(开方根值数据栏)
REPLACE 外环值 WITH RECNO()
ENDIF
ENDFOR
SELECT 生成初始值23
SKIP
ENDDO
CLEAR ALL
 楼主| 发表于 2010-6-1 18:01 | 显示全部楼层

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

要想找出100亿内这类型的最密5生素数群,不会超过1天的时间。单机单次运行时间。
 楼主| 发表于 2010-6-1 18:03 | 显示全部楼层

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

这个程序的获得是在vfbpgyfk先生大力帮助下实现的。
 楼主| 发表于 2011-11-19 12:34 | 显示全部楼层

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

USE  e:\用vfp求k生素数数量\升序代数数19.dbf
DO WHILE NOT EOF()
SELECT 升序代数数19
PUBLIC B
B=代数19
    PUBLIC D
    D=recno()
    SKIP 15
    PUBLIC A
    A=代数19
    C=A-B
    REPLACE 间隔16 WITH C
    go D
    skip
ENDDO
这是用vfp程序更新已有表中的数据,第二列的数据是第一列相隔15的数据的差值,即第一个序号值与最后一个序号值的差为15.
 楼主| 发表于 2011-11-21 21:55 | 显示全部楼层

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

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求一列数据中最大值或最小值问题,需要变动一下
 楼主| 发表于 2011-11-21 22:00 | 显示全部楼层

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

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
这是统计同一列(同一字段)中同一种值重复出现的次数(先把不同的值放到一个表中,在此程序中是第二个工作区的表)
发表于 2011-11-22 08:02 | 显示全部楼层

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

Excel软件环境中,给出一个自定义函数流程图或加载步骤也可以



南京耳鼻喉医院
治疗打呼噜的医院
南京军区机关耳鼻喉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-15 23:11 , Processed in 0.081830 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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