数学实验之二---素数 - 科学技术大学.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学实验之二---素数 - 科学技术大学.ppt

数学实验之五 --- 素数 中国科学技术大学数学系 陈发来 实验内容 素数的个数 素数表的构造 素数的判别 最大的素数 求解素数的公式 素数的分布 1、素数的个数 算术基本定理:任何整数都可以分解为 设 为所有的素数。考察 如果N为合数,则N必以某些 为因子。这是不可能的! 虽然素数有无穷多个,但随着整数范围越来越大,素数似乎越来越稀少。 [1,100]----25 [1000,1100]---16 [100000, 100100]---6 10000100]---2 2、素数表的构造 Eratosthenes筛法 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 经过众多学者的艰辛努力, D.N.Lehmer 于 1914年编织出内的素数表。 试除法 假设我们已经找到了前n个素数p_1=2, p_2=3, ...,p_n, 为了寻找下一个素数我们从p_n+2开始依次检验每一个整数N, 看N是否能被某个p_i, i=1,2,...,n整除. 如果N能被前面的某个素数整除, 则N为合数. 否则N即为下 一个素数p_{n+1}. 为提高算法的效率,只需用不超过 的素数去除N。 3、素数的判别 威尔逊判别法 n是素数的充要条件是 这里 是指 a-b 被p整除。 不过该算法的运算量为O(nlogn^2),计算量太大。 Fermat判别法 如果p是素数,a与p互素,那么 实际上,大约2500年前,中国古代数学家 就发现了上述结论。他们由此得出:如 果 ,则n为素数。该判别法 的运算量为O(log^3n). 通过编程计算发现,反过来结论并不成 立。例如, 但是341=11x34为合数!称使得 成立的p为伪素数。 注意同余的计算: 进一步,伪素数有多少个? 答案是无穷多个。实际上,数学家迈罗在1903年证明,如果n为伪素数,那么2^n-1也是伪素数。 不过,同素数个数相比,伪素数的个数非常少。例如,在2x10^10之内,伪素数不到素数的百万分之三。因此,可以认为 Fermat定理的逆定理几乎成立。 利用伪素数表,可以给出判别素数的新方法:如果p不整除2^n-1, 则p为合数;如果p整除2^n-1, 且在伪素数表中,则p为合数,否则,p是素数。 伪素数可以推广到a-伪素数。令人惊奇的是,存在这样的数p, 它对任何a都是伪素数。例如,561=3x11x17就是这样一个伪素数,即 这样的数称为绝对伪素数,也称迈克尔数。如果迈克尔数只有有限个,则对nM, 素数的判别变得比较容易。但迈克尔可能有无限个,这使得直接用Fermat 定理判别素性变得困难。 n-1检验法 假设n-1=FR, FR, gcd(F,R)=1. 如果对F的每一个素因子q都存在一个整数a1满足 则n是素数。 基于广义黎曼猜想的判别 1976年,缪内发现了素性判别与黎曼猜想之间的一个深刻联系。他的结论是: 在广义黎曼假设下,存在常数C, 对任何整数n, 若n为合数,则存在aC(logn)^2 使得 维路于1978年指出,上述常数C=70. 由此可以设计如下多项式算法: 对任意n, 依次对a=1,2,…,70(logn)^2检验上式是否成立。若对每一个a都不成立,则n为素数。否则,n 为合数。 上述算法的运算量为O(logn)^5. 1980年数学家Adleman, Rumely, Cohen和Lenstra研究出一种非常复杂、具有高度技巧的素数判别方法,检验一个20位数的素性只需10秒,对一个50位数,只要15秒,而一个100位数只用40秒。如果用试除法,判别一个50位数的素性要一百亿年! 概率判别法 Lehmann: 给定p, 判断它是否为素数: (1)选择一个小于p的随机数a; (2)如果a与p不互素,则p为合数; (3)计算 J=a^(p-1) mod p; (4)如果 J1或-1, 那么p为合数; (5)如果 J=1或-1, 那么p不是素数的可能性最多是50%. 重复k次实验,那么p不是素数的可能性不超过1/2

文档评论(0)

wangxing1张 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档