【学习笔记】Miller–Rabin素数测试

本文介绍了Miller-Rabin素数测试算法,该算法用于判断一个数是否为质数,单次测试时间复杂度不超过O(Log2N),具有较高的效率。虽然不是确定性算法,但通过选择特定的测试底数,可以提高判断准确性。文章详细解释了算法原理,包括费马小定理和相关引理,并给出了测试过程。此外,还提供了在不同数值范围内的安全测试底数选择,以确保正确结果。最后,提及该算法在实际问题中的应用。
摘要由CSDN通过智能技术生成

【算法简介】

  • MillerRabin M i l l e r R a b i n 素数测试是一种判断一个数是否是质数的方式。
  • 其单次测试的时间复杂度不会超过 O(Log2N) O ( L o g 2 N ) ,期望为 O(LogN) O ( L o g N ) ,几乎不需要额外的空间。
  • MillerRabin M i l l e r R a b i n 素数测试不是一个确定算法,其单次测试有不超过 14 1 4 的概率会将一个合数误判为一个素数。但当被测试数在某一个范围内时,我们可以通过选取适当的测试底数让 MillerRabin M i l l e r R a b i n 素数测试对于这个范围内的每一个数都能够正确地得出结果。

【算法流程】

  • 一个质数具有许多合数不具有的性质,例如:

  • 定理 1 1 :若 p 是质数,则对于任意 0<a<p 0 < a < p ,有 ap11 (mod  p) a p − 1 ≡ 1   ( m o d     p )

  • 引理 2 2 :若 p 是质数,且 x21 (mod  p) x 2 ≡ 1   ( m o d     p ) ,那么 x1 (mod  p) x ≡ 1   ( m o d     p ) xp1 (mod

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值