找回密码
 欢迎注册
查看: 50442|回复: 32

[求助] 请教gxqcn一个问题

[复制链接]
发表于 2008-10-23 13:54:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
能否把PrimeNumber从16位计算机无符号长整型的数值范围扩大到32位计算机甚至64位计算机无符号长整型的数值范围。
mathe也觉得标题使用别人的id不好,修改一下
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 14:20:25 | 显示全部楼层


看不懂
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 16:17:21 | 显示全部楼层
本来就是32位的吧。64位就太大了,我怀疑现在是否有能力求出具体的数值来。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 17:05:16 | 显示全部楼层
刚刚看了一下这个程序,该程序有3个功能,
1.  统计某个区间素数的个数
  方法:  输入a和b的值, 且a不等于b,不选择输出到屏幕或者文件

2.列出某个区间的所有素数
  方法:  输入a和b的值, 且a不等于b,选择输出到屏幕或者文件

3. 分解质因数
  方法:  输入a和b的值, 且a等于b,则将a分解成几个质数积的形式。


对于分解质因数,使用64bit整数不是不可以,但当a很大是,分解可能话不少时间。

对于列出某个区间的所有素数,如果a,b是64bit数,$|a-b|$可能很大,则无法输出到屏幕或者文件,另外,当a是64bit数时,且很大时,筛素数的时间将很长,无法保证在一个可以接受的时间内输出结果。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 17:11:16 | 显示全部楼层
1问题不大.
2如果区间长度不是太长应该还好(其实只要算出2^32以内所有素数就好办了),当然计算时间会稍微有点长.
3有点看不懂,但是如果仅仅分解质因数,应该还能够对付.至少比问题2好办.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 17:32:02 | 显示全部楼层
1、2^64大约是10^19数量级,即使只要求素数个数,也要花不少时间了。
2、列出素数,这个就麻烦了,如果是1~2^64,不太现实。
3、2^64数量级,分解应该是小事一桩啊。

3个问题中,2是最难的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 18:18:28 | 显示全部楼层

回复 5# mathe 的帖子

mathe 言之有理
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 19:12:59 | 显示全部楼层
尽量别在标题中直呼其名。。。

liangbch 在 4# 中已说出了其三个基本功能,
若有算法库 HugeCalc.dll 的支持,还具备随机生成大素数、自动计算两相邻素数的间距等。

当初之所以仅限定在 2^32 以内,只要是考虑到如下几点:
1、与CPU及OS的字长一致,无须自定义数据结构,所以效率比较高(无论是运行还是开发上);
2、该产品为开发快速阶乘过程产生的副产品,即便 HugeCalc 推出 64 位版本,当前的素数范围仍足够;
3、正如前面几位网友说的那样,如果扩大范围,将可能导致一些计算效率、用户内存资源等方面的问题。

当然,并不是说该程序不会再改进,但32位系统下将不再更新了。

如果要保留当前的所有功能,且效率依然犀利无比,
将不得不开发一些新算法,比如快速分解算法,
到时升级将是自然而然、水到渠成的事了。
只是现在不行,太忙,好几个月回家后无法静心写代码。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 19:31:22 | 显示全部楼层
分解2^64的数字,估计只需要秒级
分解10^40内数字都是秒级的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-10-23 19:43:54 | 显示全部楼层
但对我来说,现在还是空白;就象当初我对素性测试一无所知那样。
估计攻克并不难,只是缺时间和精力。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-27 00:00 , Processed in 0.073003 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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