java N根实现
我正在研究一种方法来计算一个数字的nth根。然而,我对负数的nth根有问题
大多数人说使用Math.pow(num, 1 / root)
,但这不适用于负数
我试过:
public static double root(double num, double root) {
if (num < 0) {
return -Math.pow(Math.abs(num), (1 / root));
}
return Math.pow(num, 1.0 / root);
}
但是,它并不适用于所有数字,因为根可以是小数。例如root(-26, 0.8)
返回-58.71
,但这是无效的输入。即使是根,这也会给出错误的答案。例如root(-2, 2)
返回-1.41421
,但是-2没有平方根
# 1 楼答案
我使用下面的方法。也许这不是最准确的,但对我来说效果很好
# 2 楼答案
可以使用互联网上提供的众多复数包中的一个,或者将数字转换为Argand平面上的矩形位置,将其旋转到根给定的适当角度,然后将其作为(实、虚)对读取