java – 使用BigInteger类的负指数
发布时间:2020-12-15 08:28:09 所属栏目:Java 来源:网络整理
导读:我正在使用 Java BigInteger类进行一些数学运算,但在我尝试使用负数作为指数时出错.我是否认为你可以重新安排: b · φ(N)^?1 mod N 如: b------------φ(N)^1 mod N 如果不是,我怎样才能重新排列表达式,以免在我的Java代码中出现负指数错误? 解决方法 必
我正在使用
Java BigInteger类进行一些数学运算,但在我尝试使用负数作为指数时出错.我是否认为你可以重新安排:
b · φ(N)^?1 mod N 如: b ------------ φ(N)^1 mod N 如果不是,我怎样才能重新排列表达式,以免在我的Java代码中出现负指数错误? 解决方法
必须使用修改的规则执行算术模型N.特别是反转必须以不同的方式计算.逆的基本公理成立:
但是你不能通过计算1 / x作为浮点或十进制值来计算x-1 mod N.相反,您必须专门为此目的使用算法.通常使用extended euclidean algorithm的变体. 方便的是,Java的BigInteger类已经包含了这个算法: BigInteger phi = p.subtract(BigInteger.ONE).multiply(q.subtract(BigInteger.ONE)); BigInteger phiInverse = phi.modInverse(N); BigInteger result = b.multiply(phiInverse).mod(N); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |