Java 中的 Java . math . biginteger . modiinverse()方法
原文:https://www . geesforgeks . org/Java-math-big integer-modi inverse-method-in-Java/
先决条件: 大整数基础知识
modPow()方法返回这个 mod m 的模乘逆,如果 m <= 0 或者这个没有乘逆 mod m(即 gcd(this,m)!= 1).
语法:
public BigInteger modInverse(BigInteger m)
参数:m–模量。
返回值:这个方法返回一个 BigInteger 对象,其值为((this)^(-1) mod m)。
异常:
- Arithmetic exception –m < = 0, or this BigInteger has no multiplicative inverse mod m (that is, this BigInteger is not prime relative to m).
下面的程序说明了 BigInteger.modInverse()方法:
节目 1 :
import java.math.*;
import java.util.Scanner;
public class GFG {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
// create 2 BigInteger objects
BigInteger biginteger1, biginteger2, result;
// Initialize all BigInteger Objects
biginteger1 = new BigInteger("8");
biginteger2 = new BigInteger("21");
// perform modInverse operation on biginteger1 using biginteger2.
result = biginteger1.modInverse(biginteger2);
String expression = biginteger1 + " ^ -1 % "
+ biginteger2 + " = " + result;
// print result value
System.out.println(expression);
}
}
输出 :
8 ^ -1 % 21 = 8
节目 2 :
import java.math.*;
import java.util.Scanner;
public class GFG {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
// create 2 BigInteger objects
BigInteger biginteger1, biginteger2, result;
// Initialize all BigInteger Objects
biginteger1 = new BigInteger(88882);
biginteger2 = new BigInteger(22224);
// perform modInverse operation on biginteger1 using biginteger2.
result = biginteger1.modInverse(biginteger2);
String expression = biginteger1 + " ^ -1 % "
+ biginteger2 + " = " + result;
// print result value
System.out.println(expression);
}
}
输出:
Exception in thread "main" java.lang.ArithmeticException: BigInteger not invertible.
at java.math.MutableBigInteger.modInverse(Unknown Source)
at java.math.MutableBigInteger.mutableModInverse(Unknown Source)
at java.math.BigInteger.modInverse(Unknown Source)
at BigInteger.GFG2.main(GFG2.java:23)
版权属于:月萌API www.moonapi.com,转载请注明出处