乘法逆元 java_java写的三个求乘法逆元的算法
java写的三个求乘法逆元的算法:
第一个是著名的扩展欧拉算法
第二个是网上发现的一个牛人写的算法
第三个是我这个菜鸟补充的一个最垃圾的算法
在对较小的数进行运算的时候,后两种算法都比第一个快,第三个比其他两个都快。
在对较大的数进行运算的时候,第一种算法最快,第三种算法求得的结果由于java里int位数关系导致结果出错。
public int extendEuclid(int e, int modValue){
int D = 0;
int x1, x2, x3, y1, y2, y3, t1, t2, t3;
x1 = y2 = 1;
x2 = y1= 0;
x3 = e;
y3 = modValue;
int q = 0;
while(true){
if(y3 == 1){
D = y2;
break;
}
if(y3 == 0){
D = y2;
break;
}
q = x3 / y3;
t1 = x1 - q*y1;
t2 = x2 - q*y2;
t3 = x3 - q*y3;
x1 = y1;
x2 = y2;
x3 = y3;
y1 = t1;
y2 = t2;
y3 = t3;
}
return D<0?e+D:D;
}
public int extendedEuclid(int e, int modValue){
int i;
int over= e;
for(i=1; i
{
over= over % modValue;
if( over==1 )
{
return i;
}
else
{
if(over+e<= modValue)
{
do
{
i++;
over += e;
}
while( over+e <= modValue );
}
else
{
i++;
over +=e;
}
}
}
return 0;
}
public void myEuclid(int e, int modValue){
int x = e;
int num = e;
int d = 1;
while((num % modValue ) != 1){
d++;
num += e;
}
System.out.println(d);
}
乘法逆元 java_java写的三个求乘法逆元的算法相关推荐
- 三点求平面方程式的算法
// 点 // // P1(X1,Y1,Z1), P2(X2,Y2,Z2), P3(X3,Y3,Z3) // // 设法向量为n // // P2-P1 [(X2-X1),(Y2-Y ...
- 求乘法逆元的几种方法
(数学渣,下面的文字可能有误,欢迎指教) 乘法逆元的定义貌似是基于群给出的,比较简单地理解,可以说是倒数的概念的推广.记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 加减 ...
- 计蒜客 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin(求乘法逆元)
Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...
- java求乘法逆元的代码_求乘法逆元的几种方法
(数学渣,下面的文字可能有误,欢迎指教) 乘法逆元的定义貌似是基于群给出的,比较简单地理解,可以说是倒数的概念的推广.记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 加减 ...
- 表格法轻松理解扩展欧几里得算法以及利用其求乘法逆元
文章目录 扩展欧几里得算法 求乘法逆元 扩展欧几里得算法 具体算法的原理参见扩展欧几里得算法求乘法逆元,本文仅以表格的形式展现计算过程,浅显易懂.下面通过例子进行说明. 例:求1234和4321的最大 ...
- 求乘法逆元c语言版,C语言实现求乘法逆元
如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x. 1.头文件 #include #include #include 2.求需要存储的空间 int mo ...
- 夜深人静写算法(三十四)- 逆元
文章目录 一.前言 二.逆元的概念 1.单位元 2.逆元 3.模乘的单位元 4.模乘的逆元 三.逆元的求解 1.扩展欧几里德定理 2.费马小定理 3.线性递推 四.逆元的应用 1.前缀积差分 2.逆元 ...
- java乘法逆元与除法取模,关于数论乘法逆元及相关知识点
在求解a/b%m时,可以转化为(a%(b*m))/b,转化过程如下 令k = (a/b)/m(向下取整), x = (a/b)%m; a/b = k*m + x (x < m); a = k*b ...
- 扩展Euclidean算法求乘法逆原理详解与算法实现
[利用扩展Euclidean算法求乘法逆] 1. Equipment (1) operating system version :WIN 10 (2) CPU instruction set: x 6 ...
最新文章
- 李宏毅机器学习笔记(二)-------Why we need learn Machine Learning?
- 《水晶报表自动补空行,补格线思路》 【转】
- DISTINCT删除重复数据
- Leet Code OJ 107. Binary Tree Level Order Traversal II [Difficulty: Easy]
- 面试了 N 个候选人后,我总结出这份 Java 面试准备技巧
- gRPC Web使用指南
- 计算机网络 --- 网络层IP数据报
- mac如何使用「磁盘工具」创建dmg 映像文件
- Atitit 三种并发编程模型 艾龙 attilax总结 1. 并发系统可以使用不同的并发模型去实现。	1 2. 并行工作者 并行工作者模型。进来的任务分配给不同的工作者 银行模式	2 2.1.
- js之数组去重的方法
- 《室内设计软件Sketch Up零初级入门视频教程》
- SVD专题1 算子的奇异值分解——矩阵形式的推导
- win7黑苹果双系统隐藏Clover多余启动项
- PS怎样把低像素图片变成高像素图片
- linux lp命令,Linux lp 命令 command not found lp 命令详解 lp 命令未找到 lp 命令安装 - CommandNotFound ⚡️ 坑否...
- VM 将宿主机文件夹 映射至 虚拟机以及vm tools【共享文件夹、复制粘贴、拖动上传下载】
- Vue axios请求自带域名,接口及项目名
- DocuFreezer(批量文件格式转换器)官方正式版V3.1.2012.18200 | 文件格式转换器哪个好用
- 独立看门狗(IWDG)
- Ajax,Axios,Fetch的学习,对比和使用