数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: 尹志元

[原创] 尹志元_简证命题(1+1)

[复制链接]
 楼主| 发表于 2010-3-1 09:42 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)


Liudan先生:您好!
    我对于VF语言,知之甚少,远远谈不上“在行”。据我所知,再此论坛上,
精通VF的,当属 赵录(Zhaolu48)老师;精通VB的,当属天山草先生。关于编程
难题,建议您可向他们请教。
    运用VF,确能把某些证明(验证)过程 可视化的、具体的、不可驳斥的展示在屏幕上并记录下来。
《简证命题(1+1)》的【图1】可认为是“机器”证明(验证)的。但就整篇文章来说,不能说是
“机器”证明的。
 楼主| 发表于 2010-3-1 10:16 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2010-3-4 14:56 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

下面引用由liudan2010/03/01 10:40pm 发表的内容:
函数o(1/log^k(x))改变成为 o(1/log(kx)),
探讨一个计算:
1/log(100)+1/log(200)+1/log(300)+1/log(400)+1/log(500)+1/log(600)+1/log(700)+1/log(800),
=1.3675928479722407854371192625009,
这是各项分开计算8次相加。能否编程一次计算。怎么编程。
下面引用由liudan2010/03/02 05:42pm 发表的内容:
感谢尹志元先生引荐!
这个计算已由赵录先生编程。很成功。
Liudan先生:您好!
    这两天有事没过来。您说:“赵录先生编程。很成功。”——他编这样的
小程序,当然是信手拈来,不费吹灰之力。
    我也编了一个,贴出来,仅供参考。把上传的压缩文件下载后,解出其中
的文件夹。打开后,双击s_k.PRG 即可运行,出现对话框点“是”,就行了。
先生,对数论有相当的研究。建议您可向他请教。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2010-3-4 14:58 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2010-3-15 12:23 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

尹志无侠客:您好!
看了您的证明,也研读了您程序,在此献丑,请见谅。
1、思路廷好,采用了奇数对原理。
2、由于没有使用中间点,出现了重复素数对,而后还要减去一半,影响运算速度。
3、有些表达式或提示等,不如直接些。
4、采用这种方式运行时间长,我比对了一下,当求解偶数为1000000时的素数和配素数对,用我的方法共用11.75秒(9.75+2),而您的程序是7分22.14秒,您的程序所用时间的零头都将近是我的两倍。这样,数据再大,那时间就难以承受啦。最近,我求解了两个亿内的素数并配对,共用时间是140分32.14秒+4分51.05秒=145分23.19秒(计算速度与计算机配置有关)。我的求素数和配素数主体思路详见:补充《≥6的偶数是两个素数之和起码存在一对》(一)和(二)。补充(一)是求素数编程思路,补充(二)是配素数对编程思路。
5、如是使用数据库存贮素数和素数对,可以保存每个素数和素数对,便于分析、研究。而且可以不断地补充素数表,免除重复劳动。
6、下面依据您的思路,改编出一个程序,请参考。
7、循环语句用DO还FOR以个爱好或需要而定,一般是依据循环区间的数能否确定,能确定的大多数用FOR循环语句,用FOR循环语句,还可以直接使用步长命令。循环区间的数不能确定的,用DO循环语句较多。
8、建一个素数表(SSB.DBF)和素数对表(SSD.DBF)
   SSB.DBF表中的字段有:偶数,素数
   SSD.DBF表中的字段有:偶数,小素数,大素数
9、改编后的程序,当偶数等于一百万时,求素数和配素数对全部完成共用14.40秒。如果把“越三”方法加进去,计算时间可以进一步缩短。
* 依据尹志元《简证命题(1+1)》程序思路改编的程序
Clear
input "请输入偶数:x=" to x   &&这个如果使用表单形式,要好看些
clear
w2=0
l=0
Pn=0      &&  Pn 即为 Dx(1,1)。(作者注解)
@1,8 SAY"尹志元:《简证命题(1+1)》_倒序相加6→[L3(>)+L3(<)]"color B*/+W
@2,6 SAY"--------------------------------------------------------"
@3,12 SAY"(yzy_dxxj_tj.prg - Microsoft Visual FoxPro)"&& dxxj-倒序相加;tj-统计。
SET TALK OFF
kf=INT(SQRT(x))
IF MOD(kf,2)=0
kf=kf+1           &&防止漏掉开方内的素数
ENDIF
SELECT 1
USE E:\猜想\DATA\SSD.DBF EXCL ALIAS SSD
ZAP                  &&清空表中信息
SELECT 2
USE E:\猜想\DATA\SSB.DBF EXCL ALIAS SSB
ZAP
kssj=SECONDS()       &&开始计时
*先求素数和形成素数表
FOR i=3 TO 7 STEP 2
APPEND BLANK
REPLACE 偶数 WITH x
REPLACE 素数 WITH i
ENDFOR
Sss=3                  &&表中共3条记录
*因为10前的素数都在表中啦,所以从11开始,而且跨过偶数(跨二),这样能省去一半时间
*求解开方根前的素数
FOR l=11 TO kf STEP 2   &&求开方根前的素数
GO 1
FOR k=1 TO sss
IF MOD(l,素数)=0
EXIT
ENDIF
SKIP
ENDFOR
IF k>sss
APPEND BLANK
REPLACE 素数 WITH l
@5,14 SAY "素数个数="+LTRIM(STR(RECNO()))
ENDIF
Sss=RECCOUNT()
ENDFOR
GO BOTTOM
sss=RECNO()
xks=素数+2
* 求解开方根后的素数
FOR l=xks TO x STEP 2
GO 1               &&因为我们是从3开始的
*重复使用素数表中的素数进行判断,减少重复计算而影响运算速度
FOR k=1 TO sss
IF MOD(l,素数)=0
EXIT
ENDIF
SKIP
ENDFOR
IF k>sss
APPEND BLANK
REPLACE 素数 WITH l
@5,14 SAY "素数个数="+LTRIM(STR(RECNO()))
ENDIF
ENDFOR
@5,23 SAY REPLICATE(" ",30)
*下面是配素数对
Zd=x/2               &&救出中点值
Pn=0                 &&素数对
GO 1
Xsx=RECNO()         &&小素数序数
Dsx=RECCOUNT()     &&大素数序数
DO WHILE .T.
GO Xsx
Xss=素数          &&读取小素数
GO Dsx
Dss=素数          &&读取大素数
IF Xss>Zd OR Dss<Zd
EXIT
ENDIF
DO CASE          &&利用奇素数之和进行判断
CASE Xss+Dss<x
Xsx=Xsx+1
CASE Xss+Dss=x
Pn=Pn+1
SELECT ssd
APPEND BLANK
IF Pn=1
REPLACE 偶数 WITH x
ENDIF
REPLACE 小素数 WITH Xss
REPLACE 大素数 WITH Dss
Xsx=Xsx+1
Dsx=Dsx-1
@5,14 SAY "Dx(1,1)="+LTRIM(STR(Pn))
CASE Xss+Dss>x
Dsx=Dsx-1
ENDCASE
SELECT ssb
ENDDO
SELECT ssb
@5,1 SAY REPLICATE(" ",130)
*@5,1 SAY "Dx(1,1)= "+LTRIM(STR(Pn*2))  &&因为该程序求得值没有重复
@5,1 SAY "素数个数= "+LTRIM(STR(RECCOUNT()))   &&直接标识,根据习惯而定
@5, LEN(LTRIM(STR(Pn*2)))+15 SAY "(Dx="+LTRIM(STR(x))+")"
*@7,1 SAY "x(1,1)= "+LTRIM(STR(Pn))    &&因为该程序求得值没有重复
@7,1 SAY "素数对= "+LTRIM(STR(Pn))     &&直接标识,习惯用原来的形式,可删除本行
@7,LEN(LTRIM(STR(Pn*2)))+15 SAY "0.5*x/(Log(x))^2="+LTRIM(STR(0.5*x/(Log(x))^2,12))
=MESSAGEBOX("共用时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"进展显示")
SET TALK ON
CLOSE DATA ALL
发表于 2010-3-15 12:26 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

对不起,把您的“元”打成“无”字,看到后,已改不了啦。
 楼主| 发表于 2010-3-15 13:39 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

fbpgyfk先生:您好!
    首先,谢谢您的关注。请给出:
【USE E:\猜想\DATA\SSD.DBF EXCL ALIAS SSD】和
【USE E:\猜想\DATA\SSB.DBF EXCL ALIAS SSB】的表结构。
    向您学习后,再予回复。
发表于 2010-3-15 13:50 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

这是VFP的标准表,文中已说了,只不知道您想把这两个表放在什么地方,我是放在E盘上的。结构请看第8条,很简单。如果还想增加,您可因需而定。具体如何做,请直言。
发表于 2010-3-15 14:20 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

你们都会编程,我很是羡慕,自己想学,可不知道从哪里下手。
 楼主| 发表于 2010-3-15 14:43 | 显示全部楼层

[原创] 尹志元_简证命题(1+1)

fbpgyfk先生:您好!
    请您把“一个PRG和两个DBF”一起压缩成RAR文件传上来。
这样,就都方便了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-19 03:40 , Processed in 0.115733 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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