相关疑难解决方法(0)

Java中BigDecimal的平方根

我们是否可以BigDecimal仅使用Java API而不是定制的100行算法来计算Java中的平方根?

java bigdecimal square-root

55
推荐指数
6
解决办法
4万
查看次数

java中的">>"是什么意思

我看到一些我正在看的代码中的一行,它说(12 >> 1) - 1).我将该值打印出来并以5的形式出现.如果我将12更改为5,则表示为1.什么是">>"符号?谢谢

java

17
推荐指数
2
解决办法
5万
查看次数

BigInteger 的第 N 个根

我正在使用 BigInteger 对象。对于普通整数或长整数,我可以使用 Math.pow(number, 1/nth root) 来获得第 n 个根。但是,这不适用于 BigInteger。有没有办法做到这一点?

我其实并不需要根,只是想知道它是否是完美的力量。我用它来确定给定的 BigInteger 是否是一个完美的正方形/立方体/等。

java math biginteger square-root

7
推荐指数
1
解决办法
4330
查看次数

有人可以向我解释这个函数,该函数在Java中找到BigInteger的平方根吗?

因此,我需要在Java 9之前的版本中使用BigInteger,我发现下面的函数可以做到这一点。我确实了解该代码,但是我真的不明白为什么要在那里。因此,我想我并没有真正了解其背后的数学原理。就像为什么要使用(n / 32 + 8)。为什么要计算中间值。等等

    BigInteger a = BigInteger.ONE;
    BigInteger b = n.shiftRight(5).add(BigInteger.valueOf(8));
    while (b.compareTo(a) >= 0) {
        BigInteger mid = a.add(b).shiftRight(1);
        if (mid.multiply(mid).compareTo(n) > 0) {
            b = mid.subtract(BigInteger.ONE);
        } else {
            a = mid.add(BigInteger.ONE);
        }
    }
    return a.subtract(BigInteger.ONE);
}
Run Code Online (Sandbox Code Playgroud)

java biginteger square-root

2
推荐指数
1
解决办法
58
查看次数

Java中两个BigIntegers的关系运算

在尝试使用BINARY SEARCH方法计算BigInteger的平方根时,我陷入了如何使用两个BigIntegers来满足比较操作的问题.就像,我想检查两个BigInteger变量之间的相等,大于或小于条件.

这是错误的代码片段,粗略地了解我想要执行的内容.任何解决问题的努力都将受到赞赏.

public static BigInteger squareroot(BigInteger bi){
    //BigInteger bkl;
    BigInteger low,high,mid;
low=ONE;
high=bi.add(ZERO);
while(low<=high)
{
    mid =(low.add(high)).divide(new BigInteger("2"));
    if(mid.multiply(mid).equals(bi))
        return mid;
    if(mid.multiply(mid) > bi)
        high = mid -1 ;
    else
        low = mid + 1;
}
return mid;
}
Run Code Online (Sandbox Code Playgroud)

java biginteger binary-search comparison-operators

1
推荐指数
1
解决办法
1215
查看次数