博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Miller-Rabin素数测试学习小计
阅读量:7109 次
发布时间:2019-06-28

本文共 501 字,大约阅读时间需要 1 分钟。

1、Miller-Rabin是干啥的?它是用来检测一个数字(一般是很大的数字)是不是素数;

2、Miller-Rabin算法基于的两个定理:

(1)费尔马小定理:如果p是一个素数,且0<a<p,则a^(p-1)%p=1.利用费尔马小定理,对于给定的整数n,可以设计素数判定算法,通过 计算d=a^(n-1)%n来判断n的素性,当d!=1时,n肯定不是素数,当d=1时,n 很可能是素数.

(2)二次探测定理:如果p是一个素数,且0<x<p,则方程x^2%p=1的解为:x=1或x=p-1.

3、利用二次探测定理,可以再利用费尔马小定理计算a^(n-1)%n的过程中增加对整数n的二次探测,一旦发现违背二次探测条件,即得出n不是素数的结论.具体来说是这样的:如果n是素数,则(n-1)必是偶数,因此可令(n-1)=m*(2^q),其中m是正奇数,q是非负整数,考察下面的测试:

         a^(2m)%n; a^(4m)%n; …… ;a^(m*2^q)%n

若上面的式子中a^(2^i*m)%n计算出1来,我们就要看看a^(2^(i-1)*m)是不是等于1或者n-1,若既不是1也不是n-1那么我们判断不是素数。

 

 

转载地址:http://drlhl.baihongyu.com/

你可能感兴趣的文章
keepalived instance priority don't impact by track script|interface weight when 255
查看>>
Vue初学知识点记录(一)
查看>>
SVG和Vector的概念和如何在Android Studio中使用
查看>>
Swift练习题—基础控制流
查看>>
技术专栏丨从原理到应用,Elasticsearch详解(上)
查看>>
什么是散列表(Hash Table)
查看>>
vue作用域插槽,你真的懂了吗?
查看>>
透视云原生热的背后
查看>>
个人整合,java 通过aspose转PDF ,支持各种格式 JPG ,TXT, PPT, EXCEL, DOC 免费开箱即用版...
查看>>
如果使用Github管理代码的方式文章
查看>>
菜鸟成长之路 第二周
查看>>
麻省理工教授透露为什么80%黑客都使用Python!
查看>>
linux dhcp服务器 超级作用域
查看>>
二分查找
查看>>
对haproxy配置学习过程中几个点进行总结
查看>>
Oracle资源配置profile(二,2/2)
查看>>
IntelliJ IDEA 12 详细开发教程(二)Tomcat服务配置与Jrebel热部署
查看>>
phpadmin 详细配置
查看>>
Cisco IOS 配置PPPOE
查看>>
PHP: 深入了解一致性哈希
查看>>