找回密码
 欢迎注册
查看: 15236|回复: 11

[提问] 有几个素性测试的问题向高手请教

[复制链接]
发表于 2011-12-2 14:49:41 | 显示全部楼层 |阅读模式

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

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

×
我看有些高手用下面的方法已经实现了测试,所以特来请教。
1、费马素性判定 设n是一个整数。选择一个随机的a满足1<a<n-1。如果a^(n-1)≡/ 1 (mod n),那么n是一个合数。如果a^(n-1)≡1 (mod n),那么n可能是一个素数。
我想问的是:这个判断怎么实现的。是直接用a^(n-1)和n进行模运算,还是利用的乘法计算再反复取模。
我想:如果直接用a^(n-1)和n进行模运算的话,当n相当大时,设n为百万位,就算a=2,能用2^(n-1)与n进行模运算吗?
如果用乘法计算再反复取模的话,那要运行多少次呀!一直弄不明白,请高人不要笑话我问的这低级问题。
2 Miller-Rabin素性判定 
若一个数n,分解n-1=2^k*m,当k的值较小,设k=1,那么奇数m的数字位数也相当于n的位数,选择一个随机数a满足1<a<n-1,取a=2,那么用2^m去除以n(n是百万位), 2^m也相当大呀,然后再把余数反复平方,再取模,如果n要相当大,运行的次数也不少哇,这又怎么实现的呢?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-3 14:10:05 | 显示全部楼层
第二个问题:
Modular exponentiation
http://en.wikipedia.org/wiki/Modular_exponentiation
其实这个问题你最好问hugecalc的作者,他是最清楚不过的!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-3 16:16:37 | 显示全部楼层
谢谢mathematica 的关注和指点,我也希望郭老师给我点提示,不过你的能力
也不一般那,是不是谦虚不想说。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-3 19:42:49 | 显示全部楼层
谢谢mathematica 的关注和指点,我也希望郭老师给我点提示,不过你的能力
也不一般那,是不是谦虚不想说。
海里游 发表于 2011-12-3 16:16


素性判定和因数分解是很迷人的两个话题,但是前者基本上解决了,但是后者很难!
前者用BPSW素性判定加上随机整数的miller-rabin判定就可以了,
后者是非常难的,不要专研了,这个是连郭都不敢专研的!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-3 21:11:46 | 显示全部楼层
mathematica说的对。
但你说素性判定已基本上解决了,我只想知道费马素性检测,
是用2^(n-1)-1和n直接取模计算,还是用乘法完成的,
看有些资料介绍,似乎很容易,不知容易在什么地方,很是好奇。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-4 19:52:24 | 显示全部楼层
模幂算法也是比较有学问的算法,
一般是将指数转化成二进制序列,然后从左至右或从右至左扫描(前者更好),
为了提速,还可结合滑动窗口法,即先进行些预算,拿空间换时间。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-4 20:59:19 | 显示全部楼层
谢谢郭老师的指点,高人就是高人,方法多,不保守,值得尊敬。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-5 09:11:39 | 显示全部楼层
一般是根据二进制来算,也有根据幂的因子分解来算的。
如果想深入研究,请搜索加法链。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-5 11:28:38 | 显示全部楼层
谢谢高人medie2005 的指点,昨天看了郭老师的方法后,在网上搜了一下,
我搜到一个论文,正好包括了你们这两位高人的算法,使我大概知道了大数
运算的原理,再次对二位高人表示感谢!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-2-13 12:04:51 | 显示全部楼层
蒙哥马利 模幂运算
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-26 18:05 , Processed in 0.074811 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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