
算法
文章平均质量分 82
我的书包哪里去了
这个作者很懒,什么都没留下…
展开
-
Miller-Rabin概率素数测试法
目前来说,一般产生大素数的方法有两种:一种是概率素数测试法,另一种是确定性素数测试法。现已有许多种概率素数测试法,如Solovay-Strassen测试法、Lehman测试法及Miller_Rabin测试法等。这些算法基本上是以费尔马定理(Fermat Theorem)为基础,即:若N为素数,则对任意的整数a,0<a<N,必定满足a^(N-1) mod N =1 ,或a^((N-1)/...原创 2018-04-07 19:22:34 · 2255 阅读 · 1 评论 -
二元法及M元法求快速幂模
幂模运算m^e (mod N),当m或者e很大时,其计算复杂度将非常高。因此希望有其他更快的计算方法,下面介绍二元法及M元法快速的运算方法。一、二元法描述在幂模运算中,比较常用的一种方法是二元法(也称为平方乘法),就是先将指数e以二进制表示法表示出来,即:e=e0+e1×2+e2×2^2+.....+e(L-1)×2^(L-1)于是运算过程为:m^e(mod N)=(...(m^(e(L-1))^...原创 2020-03-06 21:57:00 · 1139 阅读 · 0 评论 -
欧几里得算法(求最大公因子)及扩展欧几里得(求乘法逆元)
一、欧几里得算法 欧几里得算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。gcd(a,b)=gcd(b,a mod b)。算法描述:1. 输入:两个非负整数a,b,且a≥b。2. 输出:a,b的最大公因子。 (1)当b≠0时,作 r←a mod b,a←b,b←r。 (2) 返回(a)。代码递归实现:int gcd(int a,int b){ ...原创 2018-04-14 15:27:24 · 1832 阅读 · 0 评论