数学研发论坛

 找回密码
 欢迎注册
查看: 2600|回复: 7

[BUG] CHugeIntX::GeneratePrime的BUG

[复制链接]
发表于 2008-5-6 14:34:10 | 显示全部楼层 |阅读模式

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

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

x
比如CHugeIntX::GeneratePrime(140),得到的素数的二进制位数目总是只有120多位
应该是个比较简单的BUG

评分

参与人数 1金币 +10 鲜花 +8 收起 理由
gxqcn + 10 + 8 谢谢反馈该bug!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 14:55:43 | 显示全部楼层
是不是最大128位?

另外是否为位随机算法?
必须是位随机
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 15:00:38 | 显示全部楼层
没有限制,141或者142位产生数据长度都还可以。140就不行了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 15:07:11 | 显示全部楼层
谢谢反馈该bug!

当且仅当 28|u32Bits 时,生成的素数要小 28-9=19 bits

原因如下:

GeneratePrime( u32Bits ) 函数中需事先进行 Random( u32Bits ),
当 u32Bits 能被 U32_BASEX_BITS (=28)整除时,
本应设定首band位长=U32_BASEX_BITS,却误写成了=U32_BASE_LEN(=9)

该bug的影响面:
仅对 CHugeIntX::Random( u32Bits ) 当 u32Bits 正好被 28 整除时,
间接影响到内部调用该函数的 CHugeIntX::GeneratePrime( u32Bits )


这是 HugeCalc V8.0.0.0 面世以来首个被发现的bug!谢谢!

HugeCalc_DLL.zip

282.55 KB, 下载次数: 6, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

2008-05-06 修正随机数位数可能缺19bits的bug

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-6 15:11:10 | 显示全部楼层
在这个版块,发表文章时,是不是应该在标题前面的分类中添加一个"BUG"选项?我现在只能选择“建议”
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 15:41:59 | 显示全部楼层
已新增该主题分类。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 21:13:55 | 显示全部楼层
已修正(仅修改了那处代码;资源文件里将文件日期进行了修改;版本号未变),
新的DLL请大家从 4# 下载更新,覆盖原同名文件即可。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-6 21:17:10 | 显示全部楼层


手挺快的啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2020-12-3 11:45 , Processed in 0.082919 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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