首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >nth根实现

nth根实现
EN

Stack Overflow用户
提问于 2018-05-21 02:58:29
回答 2查看 0关注 0票数 0

试过这样做:

代码语言:txt
复制
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没有平方根。

EN

Stack Overflow用户

发布于 2018-05-21 12:09:24

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

代码语言:txt
复制
public static double root(double num, double root)
{
    return Math.pow(Math.E, Math.log(num)/root);
} 
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档