关于验证质数
所在版块:社会百科 发贴时间:2003-04-26 15:44  评分:

用户信息
复制本帖HTML代码
高亮: 今天贴 X 昨天贴 X 前天贴 X 
学CS1101S的时候,讲过两种testing的方法,一种是loop寻找n的smalleset divisors,时间是O(√n),另一种是费马小定理的逆命题来验证(Fermat's test)。
费马小定理是说:对于任何一个质数p,和一个小于p的正整数a,a^(p-1)≡1(mod p)。用这个定理的逆命题来验证n是不是质数,算法是随机取几个a,如果a^(p-1)≡1(mod p)都成立,测试就通过了。尽管Fermat's test的时间是O(logn),非常之快,但这个测试只能说明n很有可能是个质数,这是因为有些和数像561,1105也能顺利通过测试。所以这个Fermat test不能保证准确性。
(其上详情见CS1101S教材:http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.6)

据我所知,验证一个N-digit的整数(注意是N-digit)是不是质数是一个NP问题,也就是说,目前还没人能找到一个polynomial时间的算法(比如O(N^2)之类),如果真有那么一个算法,那P=NP问题就解决啦~ 整个科学界都会为之震惊;)

.
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!


 相关帖子 我要回复↙ ↗回到正文
质数算法 很硬   (225 bytes , 819reads )
不知道这个方法对不对。。。 nomore   (283 bytes , 478reads )
关于验证质数 PvsNP   (790 bytes , 595reads )
上次有一个印度学者来NUS讲学,说判断质数是P的算法 吴永铮   (135 bytes , 582reads )
在一篇文章里看到的 PvsNP   (374 bytes , 234reads )
呵呵,你理解错了 吴永铮   (173 bytes , 256reads )
我有点明白了 PvsNP   (310 bytes , 250reads )
我有点明白了 PvsNP   (310 bytes , 224reads )
几年前复旦一个教授(不是计算机系的)声称解决了 请走人行道   (78 bytes , 216reads )
说说我地 很硬   (85 bytes , 253reads )
我是想照这样算下去很有可能找到一个很大的质数 很硬   (100 bytes , 224reads )
我们cryptography里讲到的primality test 请走人行道   (128 bytes , 263reads )
好像不对吧。。。。。。 nomore   (121 bytes , 257reads )
只好用数论证明啦 :P 有话想说   (36 bytes , 237reads )
算了几个大数, 出现了一个不是质数 很硬   (31 bytes , 287reads )
Now the standard algorithm used in 大一的人   (645 bytes , 385reads )
to the industry 大一的人   (0 bytes , 241reads )