zoukankan      html  css  js  c++  java
  • Miller_Rabin(米勒拉宾)素数测试

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

    举个例子:

    证明:

  • 相关阅读:
    MFC CDialog/CDialogEx DoModal ALT
    yum和apt-get用法及区别
    ubuntu 12.04 source.list 源更新
    elasticsearch 优化
    TRIE树
    数据统计经验浅谈
    机器学习
    python 读取libsvm文件
    spark 参数调优
    python中的一些函数
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/8550534.html
Copyright © 2011-2022 走看看