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

    举个例子:

    证明:

  • 相关阅读:
    一道比较有趣的题
    笑话两则
    时钟
    组策略 简单介绍
    网页乱码问题ASP.NET
    同性恋的公鸡
    SQL中CASE函数_可解决编程中空表检索的一些问题
    百万网?
    黑客 故事
    word有趣问题集锦
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/8550534.html
Copyright © 2020-2023  润新知