码迷,mamicode.com
首页 > 其他好文 > 详细

Miller_Rabin(米勒拉宾)素数测试

时间:2018-03-12 21:11:55      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:判断   bubuko   rect   mic   body   ima   else   als   alt   

2018-03-12 17:22:48

米勒-拉宾素性检验是一种素数判定法则,利用随机化算法判断一个数是合数还是可能是素数。卡内基梅隆大学的计算机系教授Gary Lee Miller首先提出了基于广义黎曼猜想的确定性算法,由于广义黎曼猜想并没有被证明,其后由以色列耶路撒冷希伯来大学的Michael O. Rabin教授作出修改,提出了不依赖于该假设的随机化算法

问题描述:对于大整数N,判断其是否为素数。

问题求解:

若N为偶数,直接返回false,若N是奇数,则进行以下几步进行判断:

  1. 将N - 1分解为 2 ^ s * d 的形式,得到s 和 d的值;
  2. 从[1, N - 1]中随机挑选a,作为基底;
  3. 对每个 r in [0, s - 1],if ( a ^ d mod N != 1 && a ^{d * (2 ^ r)} mod N != -1) return N 是合数; else N有3/4的概率是素数,可以继续另选a加以判断。

举个例子:

技术分享图片

证明:

技术分享图片

 

Miller_Rabin(米勒拉宾)素数测试

标签:判断   bubuko   rect   mic   body   ima   else   als   alt   

原文地址:https://www.cnblogs.com/TIMHY/p/8550534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!