Java 有没有比Math.pow更好(更正确)的方法来计算某些幂的模量?
考虑以下简单的Java代码块:Java 有没有比Math.pow更好(更正确)的方法来计算某些幂的模量?,java,math,floating-point,Java,Math,Floating Point,考虑以下简单的Java代码块: public static void main(String[] args) { int a = 7; double exp; for (int i=0; i<71; ++i) { exp = Math.pow(a,i) % 71; if (exp == 59.0) System.out.printf("k=%d: %.0f%n", i, exp); } } publicstaticvoidmain(字符串[]a
public static void main(String[] args) {
int a = 7;
double exp;
for (int i=0; i<71; ++i) {
exp = Math.pow(a,i) % 71;
if (exp == 59.0)
System.out.printf("k=%d: %.0f%n", i, exp);
}
}
publicstaticvoidmain(字符串[]args){
INTA=7;
双经验;
对于(inti=0;i来说,不需要编写自己的方法的最简单正确的权宜之计可能是
BigInteger.valueOf(a)
.modPow(BigInteger.valueOf(i), BigInteger.valueOf(71))
.intValue();
不需要编写自己的方法的最简单正确的权宜之计可能是
BigInteger.valueOf(a)
.modPow(BigInteger.valueOf(i), BigInteger.valueOf(71))
.intValue();
如果要避免“大计算”,则可以在每次乘法后执行模运算:
public static void main(String[] args)
{
for (int i=0,a=1; i<71; i++, a = (a*7)%71)
{
if (a == 59)
System.out.println("k = " + i);
}
}
publicstaticvoidmain(字符串[]args)
{
对于(int i=0,a=1;i如果要避免“大计算”,则可以在每次乘法后执行模运算:
public static void main(String[] args)
{
for (int i=0,a=1; i<71; i++, a = (a*7)%71)
{
if (a == 59)
System.out.println("k = " + i);
}
}
publicstaticvoidmain(字符串[]args)
{
对于(int i=0,a=1;i有趣。总是很高兴找到新方法。我甚至不知道Java有一个BigInteger
,就这一点而言,它有这样的方法..有趣。总是很高兴找到新方法。我甚至不知道Java有一个BigInteger
,就这一点而言,它有这样的方法。。