Rabin -Miller算法判定素数
来源:互联网 发布:淘宝网老年人用太极剑 编辑:程序博客网 时间:2024/05/16 11:05
Rabin -Miller算法是典型的验证一个数字是否为素数的方法。判断素数的方法是Rabin-Miller概率测试,那么他具体的流程是什么呢。假设我们要判 断n是不是素数,首先我们必须保证n 是个奇数,那么我们就可以把n 表示为 n = (2^r)*s+1,注意s 也必须是一个奇数。然后我们就要选择一个随机的整数a (1 <=a <=n-1),接下来我们就是要判断 a^s=1 (mod n) 或a^((2^j)*s)= -1(mod n)(0 <=j如果任意一式成立,我们就说n通过了测试,但是有可能不是素数也能通过测试。所以我们通常要做多次这样的测试,以确保我们得到的是一个素 数。(DDS的标准是要经过50次测试)
采用Rabin-Miller算法进行验算
首先选择一个代测的随机数p,计算b,b是2整除p-1的次数。然后计算m,使得n=1+(2^b)m。
(1) 选择一个小于p的随机数a。
(2) 设j=0且z=a^m mod p
(3) 如果z=1或z=p-1,那麽p通过测试,可能使素数
(4) 如果j>0且z=1, 那麽p不是素数
(5) 设j=j+1。如果j且z <>p-1,设z=z^2 mod p,然后回到(4)。如果z=p-1,那麽p通过测试,可能为素数。
(6) 如果j=b 且z <>p-1,不是素数
采用Rabin-Miller算法进行验算
首先选择一个代测的随机数p,计算b,b是2整除p-1的次数。然后计算m,使得n=1+(2^b)m。
(1) 选择一个小于p的随机数a。
(2) 设j=0且z=a^m mod p
(3) 如果z=1或z=p-1,那麽p通过测试,可能使素数
(4) 如果j>0且z=1, 那麽p不是素数
(5) 设j=j+1。如果j且z <>p-1,设z=z^2 mod p,然后回到(4)。如果z=p-1,那麽p通过测试,可能为素数。
(6) 如果j=b 且z <>p-1,不是素数
- Rabin -Miller算法判定素数
- 算法基础 - 素数判定(Miller-Rabin算法)
- Miller-rabin判定素数
- 素数判定——Miller Rabin 算法
- Miller-Rabin大素数判定
- 【Miller-Rabin 素数判定】HDU
- 模板:(数论:大素数判定-分解: Miller-Rabin算法)
- 素数判定的一些讨论(Miller-Rabin算法)
- 【素数算法】Rabin-Miller算法
- Miller-Rabin素数判定O((logn)^2)
- miller rabin 随机素数判定法模版
- 判断素数 Miller-Rabin 算法
- Miller-Rabin素数检测算法
- 公钥密码之RSA密码算法大素数判定:Miller-Rabin判定法!
- 【知识点】大数分解与素数判定 --- 【Miller-rabin算法】【pollard-rho算法】
- 素数判定与大数分解【Miller-rabin算法】【pollard-rho算法】
- 素数测试算法-Miller-Rabin算法
- 无聊,用Rabin-Miller算法算算素数
- 全球企业开发大会QCon即将召开,希望获得内部价的同学可以联系我
- 如何在ASP.NET中上传文件到数据库
- hfgh
- tgyt
- ytuyt
- Rabin -Miller算法判定素数
- 第1章 绪论
- 郁闷
- 数据库连接
- 堆和栈
- VC++6.0之mfc无法定义成员变量
- 九九乘法表
- 大学——原来是这样——我进入了电脑王国
- TCP/IP协议族(第二版)第一章