小规模素数筛法效率及复杂度分析.docVIP

  • 16
  • 0
  • 约3.59千字
  • 约 8页
  • 2017-03-05 发布于重庆
  • 举报
小规模素数筛法效率及复杂度分析

小规模素数筛法效率及复杂度分析 全规模筛法,开方筛法,Eratosthenes筛法的复杂性分析讨论 和Miller Rabin筛法的实现难点分析 计算机学院 2011级1班 计算机科学与技术(师范)张季伦 本文主要讨论几种小规模教学常用的素数筛法的算法时间复杂性以及实现难度,这几种算法分别是全规模筛法,开方筛法,Eratosthenes筛法和Miller Rabin筛法。其中我将对前三种算法进行较为全面的分析,计算证明和代码实现;对于Miller Rabin算法(它其实是一种随机算法),我将给出一个并不完美但包含其主要思想的算法实现。 我将从思想,原理,复杂度和实现代码几个方面来讨论我所提到的算法。 全规模遍历筛法: 原理:根据素数的基本定义:只能被1或本身整除的数。我们通过用小于其本身大于等于2的数去除它,判断余数过后方可知道其素性。 伪代码: INPUT N; DEFINE FLAG=0; DEFINE I; FOR(I=2;IN;I++){ IF(N%I==0) {FLAG=0;BREAK;} ELSE FLAG=1; } IF(FLAG==0) OUTPUT UNPRIME; ELSE OUTPUT PRIME; 复杂度分析: 可以很容易得看出,该算法对于测试一个素数的素性时,复杂度为 O(N)。 当测试数据为一个数为N的递增数串时,其复杂度为O(N*N)。 开方遍历算法: 原理:由初等数论的基本知识可以知道,对于任意一个大于2的合数N来说,下式是成立的: N=pow(p1,k1)*pow(p2,k2)*pow(p3,k3)*………………*pow(pn,kn)。 其中:pi (1=i=n) 表示已知素数 2=pi=sqrt(N)+1 在这一点中 pow(m,n)代表m的n次方,sqrt(m)代表m的开方,加一是为了保险起见。 所以,我们对全规模遍历法会有一个优化就是将核心的循环步长由N优化为至多sqrt(N)+1。 伪代码: INPUT N; DEFINE FLAG=0; DEFINE I; FOR(I=2;ISQRT(N)+1;I++){ IF(N%I==0) {FLAG=0;BREAK;} ELSE FLAG=1; } IF(FLAG==0) OUTPUT UNPRIME; ELSE OUTPUT PRIME; 复杂度分析: 根据和借鉴全规模的分析方式可以得出,在测试数据为单个数的情况下,开方筛法的复杂度为O(SQRT(N))。 在递增数串N的输入规模情况下复杂度为O(N* SQRT(N))。 Eratosthenes筛法: 原理:根据初等数论中的基本算术定理衍生来的Eratosthenes筛法(求连续递增素数表)。其基本的中心思想是这样的: 生成自然数数表 得到第一个素数2,并将2的倍数全部划掉(1就不用说了) 由于要得到一个质数,我们只需要确定他的开方数以内的大于2的自然数不会整除它,所以我们的到3是质数,然后划去3的倍数,依次类推。 一些技巧: 由于我们已经知道了对于一个数N,其的质因子会一定小于其开方的向上取整数,所以对于连续数表来说,我们只需要把最大数开方取整以内的质数的倍数找出即可,而这个过程又是伴随在主过程中的。 伪代码: INPUT N; DEFINE I,J; J=1; J-FLAG=0; FOR(I=2;ISQRT(N)+1;I++){ IF(J IS DELED) CONTINUE; FOR(J=2*I;J=N;J=J+I){ J-FLAG=0; } } FOR(I=1;I=N;I++) IF(I-FLAG!=0) OUTPUT I; 复杂度分析: 可以看出,该算法的时间复杂度是常数级别的。但是其空间复杂度确是O(N)。 Miller Rabin算法: 原理:根据费马小定理的一个变种,存在质数P使得下列式子成立: pow(A,(P-1))=1(MOD P) 0AP 所以我们只需要找到一个小于P的正整数A,对其做上面的模幂操作判断模数就可以知道P的素性。 但不幸的是这是一个偏否Monte Carlo这意味着凡是他判断出的合数就一定是合数,而它宣称的质数不一定是质数(比如1729=7*13*19),这些数被称为强伪素数(Carmichael数Carmichael数Carmichael数Carmichael数表内的遍历,找出是否是Carmichael数。 二是从一个百度友邻处得到的方法(原文copy如下) 对于大数的素性判断,目前Miller-Rabin算法应用最广泛。一般底数仍然是随机选取,但当待测数不太大时,选择测试底数就有一些技巧了。比如,如果被测数小于4 759 123 14

文档评论(0)

1亿VIP精品文档

相关文档