gpt4 book ai didi

java - 带负数的 BigInteger 求幂

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:30 25 4
gpt4 key购买 nike

我怎样才能像在这个 python(使用 sage)代码中那样做:

def elGamalDecrypt(c1, c2, p, x):
return Mod(c2*c1^(-x),p)

使用标准 Java 7 库?所有数字都是 BigInteger

试了很多都没有用。在 Python 中,它非常简单和快速。

最佳答案

Java 7 中的 BigInteger 类有一个 modPow方法,处理模幂运算。所以,像下面这样的东西应该可以工作(虽然我还没有测试过):

c2.multiply(c1.modPow(x.negate(), p)).mod(p)

如果 c1p 互质,modPow 方法将只接受负指数 -x。 (名称 p 表明 p 是质数,如果 c1p 不是互质数,c1 将被 p 整除,因此取幂没有意义,所以我怀疑这不会成为问题。)

关于java - 带负数的 BigInteger 求幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8623862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com