gpt4 book ai didi

java - 在Java中计算模数

转载 作者:行者123 更新时间:2023-12-01 17:55:01 26 4
gpt4 key购买 nike

我不明白为什么 mod 的计算不正确,我有 a=23b=86609c=17其中 (d=a^c mod b)。所以根据计算器计算结果应该是16559但我得到 49432?

public class Mod {

public static void main(String[] args) {
int a=23;
int b=86609;
int c=17;
double d= (Math.pow(a,c)%b);
System.out.print(d);
}
}

最佳答案

问题不在于模数部分。一旦进入 pow 部分,就会得到错误的结果。

23^17 准确地说是 1.41050039560662968926103 × 10^23。看看 Java 认为它等于什么:

1.4105003956066297E23

显然这还不够精确。

这个问题的解决方案是BigInteger:

BigInteger a = new BigInteger("23");
BigInteger b = a.modPow(new BigInteger("17"), new BigInteger("86609"));
System.out.println(b);

记住导入java.math.BigInteger;!

关于java - 在Java中计算模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45734942/

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