码迷,mamicode.com
首页 > 其他好文 > 详细

数论相关

时间:2020-05-27 01:28:36      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:质数   osi   mil   ESS   个数   composite   tps   自然数   amp   

数论相关


质数测试

Miller-Rabin随机质数测试算法

Rust实现

记有一个待测试奇自然数a, 及测试总轮数s. Miller-Rabin算法有如下定理:

  • 如果n是一个奇合数, 那么测试n为合数的证据的数据至少为\((n-1)/2\);
  • 对于任意\(a \gt 2\)的奇数和正整数s, Miller-Rabin出错的概率至多为\(2^{-s}\);

\[\begin{aligned} & //\ 测试一个数是否是合数 \& WITNESS(a, n) \& \quad n-1 = 2^{t}*u,\ a \% 2=1\& \quad x_0 = a^{u} \% n \& \quad for\ i\ in\ 1..=t \& \quad \quad x_i = x_{i-1}^{2} \% n \& \quad \quad if\ x_i = 1\ \And\And\ x_{i-1} \ne 1\ \And\And\ x_{i-1}\ne n-1\& \quad \quad \quad return\ true\& \quad \quad end \& \quad end\& \quad \& \quad if\ x_t \ne 1\& \quad \quad return\ true\& \quad end\& \quad return\ false\& end & \quad \& \quad \& // 测试奇自然数n是质数还是合数 \& MILLER-RABIN(n,s)\& \quad for\ j\ in\ 0..s\& \quad \quad a=RANDOM(1,n)\& \quad \quad if\ WITNESS(a,n) \& \quad \quad \quad return\ COMPOSITE \& \quad \quad end\& \quad return\ PRIME\& end \\end{aligned} \]

参考资料

数论相关

标签:质数   osi   mil   ESS   个数   composite   tps   自然数   amp   

原文地址:https://www.cnblogs.com/mengsuenyan/p/12969712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!