我需要反转一个BigInteger
。
假设我有BigInteger x;
,我需要计算x.modPow(new BigInteger("-1"), p)
。
我收到以下错误:java.lang.ArithmeticException: BigInteger not invertible
。
使用 BigInteger.modInverse()
-它会做您想要的。
如果您阅读docs BigInteger.modInverse()
(其执行相同的计算,但比代码更有效;实际上大概是在求幂之前BigInteger.modPow()
需要modInverse()
负输入),则您会看到:
抛出:ArithmeticException-m <= 0,或者此BigInteger不具有乘法逆模m(即,该BigInteger相对于m而言不是素数)。
如果您获得“ BigInteger不可逆”的信息,则意味着x和p不是相对质数,因此对于数学上定义为输入的x和p对没有逆。
可能性:
modPow()
和的要求modInverse()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句