java - 如何实现 pow(double x, double y)?

标签 java algorithm math

我知道如何实现 pow(double x, int y)

public class Solution {
    public double myPow(double x, int n) {
        if (n == 0)
            return 1;

        if (n % 2 == 0) {
            return myPow(x * x, n / 2);
        } else {
            if (n > 0)
                return x * myPow(x, n - 1);
            else
                return 1 / x * myPow(x, n + 1);
        }
    }
}

但是如何让它处理双y呢?

最佳答案

非整数值的求幂是用无穷级数在数学上完成的:

See here under "Exponential Series Expansion" and "Exponential Theorem"

基本上,您将使用已知的无限系列项,并计算出满足您的数值精度要求的项数。

关于java - 如何实现 pow(double x, double y)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31763074/

相关文章:

java - 数独模拟退火

algorithm - 寻找区域内权重最大的点

用于数学方程式和图形的Flash库,例如DragMath和PetitGrapheur

c++ - 三角形中的矩形

java - 使用Google Protocol Buffer的简单java文件编译错误

java - Spring MVC @RestController -> 无论我做什么,PUTting 结果都是 "400 Bad Request"

java - 使用 sed/awk/whatever 从 *nix 上的日志中获取异常

java - 我应该掌握 maven 还是开始学习 gradle

c - 我得到一个充满十六进制地址(字符)的文件,将它们转换为无符号长整数的最佳方法是什么?

algorithm - "Cantor expansion"是否应用于任何计算机技术?