gpt4 book ai didi

java - 第 n 个根实现

转载 作者:IT老高 更新时间:2023-10-28 20:53:05 27 4
gpt4 key购买 nike

我正在研究一种计算数字的第 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 没有平方根。

最佳答案

(num) ^ (1/root) 类似于 exp( (1/root) * log(num) ),所以你可以这样做:

public static double root(double num, double root)
{
return Math.pow(Math.E, Math.log(num)/root);
}

关于java - 第 n 个根实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325793/

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