回 帖 发 新 帖 刷新版面

主题:QBASIC编的哥德巴赫全猜想验证程序与质数判断程序,请提意见!

我用QBASIC编了哥德巴赫全猜想验证程序与质数查找与判断程序,
请各位QB爱好者看看,并请提出宝贵意见!

回复列表 (共25个回复)

11 楼


我从95年开始学电脑的,学的是FOXBASE,QBASIC编程完全是自学。
VB也搞过质数判断程序,不过还是感觉没有DOS编程顺手!
我是从DOS编程时代走过来的人!

12 楼

[quote]界面很好,就是按ESC不能退出。[/quote]

我基本采用的是字符控制键控制程序运行的,
在哥德巴赫猜想验证过程中,你可以快速的按ESC键退出程序。
验证过程中的意思是:当你输入一个要验证的数字,屏幕会打出结果,
在没有打完的时候,你按ESC键,就可以退出程序。这个按键时机有一
定难度,必须在输出的过程中,同时按ESC键。

程序不完备之处,请见谅!

13 楼


欢迎继续回帖,发表大家的看法!谢谢!

14 楼

那请问高手编程现在达到什么境界了呢?

15 楼

到了input与inkey$之间要抓住时机按ESC的境界了,
这个时机如白马过隙,电光火石,一纵即逝,好好把握.

你就不能检查一个输入值是不是大于0这个条件来退出程序吗?

16 楼

[quote]判断质数的核心代码:


INPUT "PLEASE INPUT YOUR INTEGER:", NUM
Y = 1
WHILE NUM >= Y
ZYP:
IF NUM MOD Y <> 0 THEN
      Y = Y + 1
      GOTO ZYP
ELSE
   PRINT NUM / Y; "*"; Y; "="; NUM
   Y = Y + 1
END IF
WEND

请提出宝贵意见及评价~![/quote]

随便找个几百bit的伪素数,直接死机。

17 楼

[quote]随便找个几百bit的伪素数,直接死机。[/quote]

QB中长整型数有个最大值,输入数值大于此数,就会溢出,
请问如何输入几百BIT的伪素数???

18 楼

如果天山雪莲确实是好学之人,那么我也诚恳的提几个建议:

1. RickOne是算法版的版主,我虽不了解他有多大能耐,但没见过猪走路也吃过猪肉
   (咳,RickOne不要误会,你跟猪肉没有什么关系,我一不小心把你们提到一起而已)
   相信对算法的理解总是会比我高不知道高多少.
2. 他的说法也许不太友好,或者说没有顾全你的面子,但他的目的是想指出你的不足.
   所以他的动机和方向是好的,你不应该有偏激与逆反的情绪与想法.
3. 对于RickOne说的大值的问题是存在的,首先你要了解一下各变量类型的范围,
   还有各变量类型运算处理,
   QB取余数的运算最大值只能处理长整形(2带头的10位整数)
   你的程序里,变量没有作显式定义,默认是单精度,
   如果超出长整形范围,会溢出错误
   如果在长整形范围内,会自动转换成整数后取余运算.
   就算是我写的质数表,用VB来运算.老半天还没算到8位数,
   而你这个程序,一个不小心弄了个八九位数进去,不死机才怪.
   (并不是真正的死机,有可能会恢复响应的,如果运气好的话,加上CPU风扇质量过关的话)
4. 你如果真的有兴趣的话,倒是可以去参考一下我的代码,
   当然,我不能说我写的有多好,或者比你好之类的,方法总是有很多的.
   但我想,你如果认真去看了,肯定会对你的学习有帮助的.
   点论坛搜索
   输入关键字:关于质数 
   搜索目标:按主题搜索 
   选择讨论区:QBasic讨论区

19 楼


谢谢Moz中肯的意见,首先,我并不是有逆反情绪,我知道强中更有强中手。

对于上面我写出的核心代码其实是最精简的质数判断代码。它是个小程序。
目的是用QB最小的几行来判断质数。它的意义是参考的意义。我的程序也是
在这个小程序基础上发展起来的。

在我的程序中,《质数查找与判断程序》如果您选5进入快速质数判断模式的话,
判断长整型数值,就算你输入最大的QB允许的长整型数值,在我的程序中,判断
一个非质数都不需要一秒钟,如果正巧你输入的是个长整型质数,那么判断时间
也只是几秒钟。那里的代码做了特别的优化的。

我目前就是碰到这个问题,我希望我的程序能读取更大的数值,而不只是(2带头
的10位整数)在长整数范围内取值计算,目前就是这个问题,我没有突破QB语言的
限制。

在我发布的EXE程序中,都对变量做了定义,dim 变量 as long。所以我的程序能
处理+2147483647以内的所有正整数。

当然我希望我的程序能够无限制的运行下去,而不必考虑数值的限制。

最后,我说说死机的问题。在我的经验中,DOS编这个程序,是不会死机的,电脑会
忠实的执行计算,而不会死机崩溃。剩下的是时间的问题,如果愿意等,电脑会给出
最终答案的。在快速质数判断模块,是不存在电脑让您等久了的问题的。

这就是算法的优化,碰到什么问题,我们就解决什么问题。

对于上面我的文字,请大家批评指正。谢谢!~

20 楼

呵呵,没想到遇上一个不老实的扮猪吃老虎的人了,
是我走漏眼了,是我有眼无珠了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册