Tag: pow

为什么Math.pow(x,y)算作双重?

我正在编写一个Java程序来计算在My Singing Monsters中将怪物提升到一定水平需要多少食物。 当我运行程序时,它说,“无法从double转换为int”。 有人可以解释为什么会这样吗? 这是程序。 int totalFood = 0; int level = 1; int levelMeal = 5*(Math.pow(2,level-1)); int mealNumber = 1; int levelGoal = 1; while(level != levelGoal) { if(mealNumber != 5) { mealNumber += 1; totalFood += levelMeal; } else if(mealNumber == 5) { mealNumber = 0; level += 1; } } if(level […]

使用递归的幂函数

我必须用Java编写一个power方法。 它接收两个整数,如果它们是正数或负数则无关紧要。 它应该具有O(logN)复杂性。 它还必须使用递归。 我当前的代码得到两个数字,但我保持输出的结果为零,我无法弄清楚为什么。 import java.util.Scanner; public class Powers { public static void main(String[] args) { float a; float n; float res; Scanner in = new Scanner(System.in); System.out.print(“Enter int a “); a = in.nextFloat(); System.out.print(“Enter int n “); n = in.nextFloat(); res = powers.pow(a, n); System.out.print(res); } public static float pow(float a, float n) […]

如何在J2ME中获取数字的力量

可能重复: J2ME电源(双,双)数学函数实现 我正在开发一个简单的j2me应用程序。 在那里,我需要得到一个数字的力量,就像在java中的pow(double num1, double num2) 。 但正如我所知,j2me不支持这种pow()方法。 任何有用的选择表示赞赏。

Math.pow在重复调用时会产生不同的结果

升级到Java 1.8.0_20后,我们的测试系统报告了错误,但代码没有更改。 我发现,使用完全相同的输入参数调用的Math.pow()调用时会产生不同的结果。 在Java 1.8.0_11中,它的行为与预期的一样,并且总是返回相同的值,但是对于Java 1.8.0_20及更高版本,它有时会返回稍微不同的值。 这类似于Math.pow根据java版本产生不同结果的问题,但不同,因为pow()的结果在一个VM中不同。 在Java 1.8.0_20及更高版本下运行时,以下JUint测试失败 import static org.junit.Assert.assertEquals; import java.util.function.BiFunction; import org.junit.BeforeClass; import org.junit.Test; public class PowerTest { private static final int N = 1000000; private static final double base = 5350.456329377186; private static final double exp = 2.0; private static double eval(final BiFunction f) { return f.apply(base, exp); } private […]

Java Math.pow的错误结果

如果您尝试运行以下代码 public class Main { public static void main(String[] args) { long a = (long)Math.pow(13, 15); System.out.println(a + ” ” + a%13); } } 你会得到“51185893014090752 8” 13 ^ 15的正确值是51185893014090757 ,即大于Math.pow返回的结果5 。 任何可能导致它的想法?

BigInteger.pow(BigInteger的)?

我正在玩Java中的数字,想看看我能做多少。 我的理解是BigInteger可以容纳一些无限大小,只要我的计算机有足够的内存来容纳这样的数字,对吗? 我的问题是BigInteger.pow只接受一个int,而不是另一个BigInteger,这意味着我只能使用一个最多2,147,483,647的数字作为指数。 是否可以使用BigInteger类? BigInteger.pow(BigInteger) 谢谢。

如何在Java中对BigDecimal进行分数处理?

在我的小项目中,我需要做一些像Math.pow(7777.66,5555.44)这样的东西只有非常大的数字。 我遇到了一些解决方案: 使用双倍 – 但数字太大 使用BigDecimal.pow但不支持小数 使用X ^(A + B)= X ^ A * X ^ B公式(B是第二个数字的余数),但是再次不支持大X或大A,因为我仍然转换为double 使用某种泰勒级数算法或类似的东西 – 我不擅长数学,所以如果我找不到任何解决方案(一些库或(A + B)的公式^(C),这个是我的最后一个选项+ d))。 谁知道图书馆或简单的解决方案? 我想很多人都处理同样的问题…… ps我发现了一些名为ApFloat的图书馆声称大约是这样做的,但我得到的结果是如此近似,甚至8 ^ 2给了我60 …