如何找到值的第n个根?

时间:2015-05-13 00:16:20

标签: swift

在Swift中,找到值的第n个根的最简单方法是什么?

3 个答案:

答案 0 :(得分:16)

我们知道数字的第N个根x等于将x提升为N的倒数的幂。知道这一点,我们可以使用pow函数来找到第N个根:< / p>

let nthRoot = pow(base, (1/n))

其中basen是浮点变量。

答案 1 :(得分:3)

    let nthRoot = pow(base, (1/n)) // will return nan for negative base

此表达式是部分解决方案,因为它不适用于负base个数字。

实施例。所有数学定律都明确定义了-27的立方根(-3)。

这是一个为负值正确计算第n个根的函数,其中value是将由n生根的数字:

    func nthroot(value: Double, _ n: Double) -> Double {
        var res: Double
        if (value < 0 && abs(n % 2) == 1) {
            res = -pow(-value, 1/n)
        } else {
            res = pow(value, 1/n)
        }
        return res
    }

    nthroot(-27, 3) // returns -3

使用三元运算符的相同函数:

    func nthroot(value: Double, _ n: Double) -> Double {
        return value < 0 && abs(n % 2) == 1 ? -pow(-value, 1/n) : pow(value, 1/n)
    }

    nthroot(-27, 3) // also returns -3

答案 2 :(得分:0)

注意:pow(base,(1 / n))得出的NaN为负数实际上是正确的。

-1的平方根定义为复数“ i”,表示所有负数的平方根均为复数值,因此不是可以表示为Double的数字。