| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1502 人关注过本帖
标题:一个素数的问题~
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:2 
那个,算法导论上面那个Miller-Robin不是满好的嘛……

这个是网上抄的……
现在,确定性素数判定法已经有很多种,常用的有试除法、威廉斯方法、艾德利曼和鲁梅利法。它们的适用范围各不相同,威廉斯方法比较适合10^20 到10^50之间的数,艾德利曼和鲁梅利法适合大于10^50的数,对于32位机器数,由于都小于10^10,所以一般都用试除法来判定。

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-09-17 18:49
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
这还有一段资料…………
Miller-Rabin测试现在已经算是过时了。这是一个概率性算法,它只能说一个数很大概率上是素数。不过这在实际应用中已经够了,再加上一直以来没有发现更好的算法,所以它才被广泛使用。人们一直确信素性判定是一个P问题,不过奇怪的是一直没有证明。

大约2002年的时候,也就是Miller-Rabin方法提出的10多年后,三个印度人终于提出了复杂度为P的确定性的素性测试算法。这个算法,也就是所谓的AKS算法,可以在多项式时间里确定的判断一个数是否是素数。目前几乎所有的新软件里面应该都使用了这个算法来做素性测试了,比如java。现在还去研究Miller-Rabin测试,实际的意义已经不大。

AKS算法正式发布版是:Manindra Agrawal, Neeraj Kayal, Nitin Saxena, "PRIMES is in P." Annals of Mathematics 160(2): 781-793 (2004)
它的2002年最初版和最新修改版都可以在第一作者的主页上下载:http://www.cse.iitk.ac.in/users/mani...lications.html

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-09-17 18:51
godgoodli
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-9-17
收藏
得分:0 
回复 19楼 godgoodli
for(k=3;k<=1000;k++)
for(i=2;i<=k/2;i++)
{if(k%i==0)
break;......}
判断1000内的素数。   等号要不要结果都是一样,只是计算机内部认为有差异而已,事实都是对的。  我只是想说明机试计算机的评分方法有问题~无其他
2009-09-17 19:53
godgoodli
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-9-17
收藏
得分:0 
回复 20楼 专抓你的错
for(k=3;k<=1000;k++)
for(i=2;i<=k/2;i++)
{if(k%i==0)
break;......}
判断1000内的素数。   等号要不要结果都是一样,只是计算机内部认为有差异而已,事实都是对的。  我只是想说明机试计算机的评分方法有问题~无其他
2009-09-17 19:54
专抓你的错
Rank: 2
等 级:论坛游民
帖 子:113
专家分:22
注 册:2009-5-12
收藏
得分:0 
以下是引用godgoodli在2009-9-17 19:53的发言:

for(k=3;k<=1000;k++)
for(i=2;i<=k/2;i++)
{if(k%i==0)
break;......}
判断1000内的素数。   等号要不要结果都是一样,只是计算机内部认为有差异而已,事实都是对的。  我只是想说明机试计算机的评分方法有问题~无其 ...
你的等号位置明显和一楼的不一样,你这里说的是第一行的等号,你一楼说的是第二行的i<=k/2那个等号

C/C++算法群19472277



第19次算法竞赛http://
2009-09-17 21:27
godgoodli
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-9-17
收藏
得分:0 
回复 25楼 专抓你的错
我打错了  是第二行的等号~      
2009-09-18 09:49
专抓你的错
Rank: 2
等 级:论坛游民
帖 子:113
专家分:22
注 册:2009-5-12
收藏
得分:0 
那就麻烦你把没有等号的完整程序写出来

C/C++算法群19472277



第19次算法竞赛http://
2009-09-18 16:06
rofor
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:68
专家分:165
注 册:2009-6-12
收藏
得分:2 
以下是引用Devil_W在2009-9-17 11:03的发言:

混乱是因为你看不懂。
 
只要看这个数是6n+1还是6n+5
 
6n+2 6n+3 6n+4 6n的不是素数
 
而这6个的集合可以组成自然数集。
 
低效就不知道怎么看出来的。
 
麻烦你写个。
 
我之前在分析大数的素性判断。
 
一 ...


I'm rofor.
for(;;;);  :-)
RoFoR [AT] YaHoO [DoT] CN
2009-09-19 21:42
快速回复:一个素数的问题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012714 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved