Miller-Rabin 测试算法

Miller-Rabin测试算法是一种用于检测大素数的高效方法,基于数论中的费马小定理和平方剩余概念。通过该算法,当一个数通过多次测试时,其为素数的概率显著增加。算法主要步骤包括计算n-1的分解,选择测试基数b,并检查平方根的同余关系。如果所有检查都通过,那么这个数可能是素数。该算法在大数素性检验中有广泛应用。
摘要由CSDN通过智能技术生成

“Miller-Rabin 测试算法”用于大素数的检测,对于较大奇数k,如果通过了 t 次素性检测,那么这个数为素数的概率大于
114t 1 − 1 4 t ,因此可以用此方法来检测一个数是否为素数。该算法的时间复杂度为 O(s*log(n))。

该算法基于数论的知识内容,在这里给出相关知识点。


Fermat费马小定理:

设 p 为素数,a 为任意正整数,则 ap1 a p − 1 ≡ 1 (mod p).


平方剩余:

设 m 为正整数,a 为整数,m a。若同余方程 x2 x 2 ≡ a (mod m) 有解,则称 a 是模 m 的平方剩余;若无解,则称 a 是模 m 的平方非剩余。


Euler 判别条件:

对于 x2 x 2 ≡ a (mod p),(a, p) = 1的方程,要么无解,要么有两个解。
设 p 是奇素数,(a, p) = 1,则
(i) a 是模 p 的平方剩余的充分必要条件是 ap12 a p − 1 2 ≡ 1 (mod p)
(ii) a 是模 p 的平方非剩余的充分必要条件是 ap12 a p − 1 2 ≡ -1 (mod p)
当且仅当(i)成立时,同余方程有两个解。

对于该判别条件,当 a = 1 时,满足 (a, p) = 1,且也满足(i),因此有: x2 x 2 ≡ 1 (mod p) 必定有两个解。


模 p 平方根:

这里主要说明 x2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值