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加以判断。

举个例子:

证明:

转载于:https://www.cnblogs.com/hyserendipity/p/8550534.html

Miller_Rabin(米勒拉宾)素数测试相关推荐

  1. 2018宁夏网络赛 B Goldbach (米勒拉宾素数测试)

    2018宁夏网络赛 B Goldbach (米勒拉宾素数测试) 题目链接 题目大意: 给你一个偶数n (2<n<=1e18) 让你把n分解成两个素数的和.(如果有多个输出任意一个) 解题思 ...

  2. 【学习笔记】Miller-Rabin(米勒-拉宾)素性测试,附常用表

    @TOC 素性测试是检验一个给定的整数是否为素数的测试. 最简单的就是用 n\sqrt{n}n​ 以内的数去试除.这是确定性的算法,即能准确知道 nnn 是否为质数. 但今天学习的是一种随机算法. F ...

  3. 数论 判断素数:普通素数判别 线性筛 二次筛法求素数 米勒拉宾素数检验

    普通的素数判断法 当我们要判断一个数字是否是素数的时候,往往会直接看这个数字模1到这个数字的根号,看有没有等于零的,从而判断这个数字是不是素数,这样做的时间复杂度为O(sqrt(n)) bool is ...

  4. 费马素性测试和米勒—拉宾素性测试

    chapter 1 Fermat's little theorem 费马小定理 费马小定理说的是:如果p是一个素数,那么对于任意一个整数a,a p − a 能被p整除,也可以用模运算表示如下: (p是 ...

  5. C++实现伪大素数生成算法(费马小定理判别法、米勒拉宾素数判定法)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.伪大素数生成原理 方法一 方法二 数学基础 二.费马小定理判别法 1.算法 2.代码实现 3.运行结果 二.米勒拉宾素数 ...

  6. 你知道如何判定一个大整数为素数吗?——米勒拉宾素数判定算法

    米勒拉宾算法的基本概念如下: 首先判断这个数n的奇偶性 若为偶数仅有2是质数 奇数则进入测试 测试方法: 首先确定几个基底a,范围在[2,n-1] 因为n是奇数,所以n-1必定为偶数 则n-1可以表示 ...

  7. 米勒-拉宾(MillerRabbin)素性测试算法

    原创滴博客~https://www.cnblogs.com/precious-ZPF/p/9481599.html 小编赶紧摘过来的,多看几遍向银家多学习学习QAQ 首先,在了解米勒-拉宾素性测试之前 ...

  8. C++米勒拉宾算法模板

    //我也忘了从哪找来的板子,不过对于2^63级的数据请考虑使用java内置的米勒拉宾算法. 1 #include <iostream> 2 #include <string> ...

  9. 米勒-拉宾素性检测算法

    米勒-拉宾素性检测就是目前应用比较广的一种随机化素性检测算法. 它是基于下面两个定理: (费马小定理)如果 p 为素数,且 a 无法被 p 整除,则对于所有大于0小于 p 的整数 a,有 ap−1≡1 ...

  10. 算个欧拉函数给大家助助兴(米勒拉宾(判断素数)+Pollard_rho(求一个大数的因子 ))

    这篇博客讲的很好: https://www.cnblogs.com/ZERO-/p/9302169.html 题目描述 木南有一天学习了欧拉函数,知道了对正整数n,欧拉函数是小于n的正整数中与n互质的 ...

最新文章

  1. Android信使Messenger解析
  2. xtrabackup 使用说明(续)
  3. drtek收音机使用说明_一百年前的便携式矿石收音机长啥样?这台1919年产品给你答案...
  4. 怎么判断网络回路_电源纹波要怎么测?
  5. 构建嵌入式linux系统_用于构建嵌入式Linux系统的4种工具
  6. requests session
  7. 深入理解ButterKnife源码并掌握原理(五)
  8. GPS模拟器与Windows Mobile模拟器
  9. 单片机实验汇编--FlashRom读写实验
  10. 微分方程数值解法的matlab程序
  11. IntelliJ IDEA 2018.2激活方法及常用快捷键
  12. L1-6 烤地瓜 (15 分)
  13. 前字节程序员感叹“字节范”就是工作上不设边界,待遇上延迟满足。
  14. 我们应该拥有怎样的职场价值观
  15. 基于微信小程序的网上订餐系统 报告+任务书+开题报告+文献综述+中期PPT+外文翻译及原文+PPT+项目源码及数据库文件
  16. Swift获取当前网络状态Wifi/5G/4G/3G/2G
  17. mac外接键盘HOME,END键问题
  18. unixprocess+java+186_interproscan 的使用和遇到的问题
  19. 物联网发展方向(复制来的)
  20. oracle里update+where,Oracle 关联表更新 update ,where exists

热门文章

  1. 远程连接时本机的键盘变成了快捷键,键盘无法打字,但是远程桌面可以进行输入
  2. SVN报错The working copy needs to be upgraded
  3. esmm/Entire Space Multi-Task Model- An Effective Approach for Estimating Post-Click Conversion Rate
  4. RISC-V from scratch 4: 写 UART 驱动
  5. Oracle数据库限制ip访问
  6. Python安装word2vec
  7. 大家来找茬游戏html,大家来找茬单机版游戏
  8. 数据结构 严薇敏 单链表(无头结点)的实现(增 删 改 查)及其使用方法详解
  9. 数据分析-用python分析中国五大城市的PM2.5值(ols建立回归模型)
  10. 调用谷歌Chrome浏览器打不开网页崩溃了