C语言中有sqrt()
和cbrt()
函数,但这些只能计算二次和三次方根。如果要求任意次方根怎么办?如果需要计算57次方根呢?
C语言中有sqrt()
和cbrt()
函数,但这些只能计算二次和三次方根。如果要求任意次方根怎么办?如果需要计算57次方根呢?
使用 pow
函数,利用获取57次方根等于将其乘以1/57次幂的性质。
更一般地,要获取 x
的 y
次方根:
double result = pow(x, 1.0 / y);
pow()
就可以轻松获得根号,那么就不需要 sqrt
和 cbrt
了。就像任意自然对数 log()
、log2()
和 log10()
一样。相反,库应该包括 root(index, radicant)
和 log(base, n)
,而不是一堆任意的变体。 - user15185126log(base,n)
可以轻松地实现为 log(n)/log(base)
(或 log2(n)/log2(base)
等)。 - dbushlog
更好吗? - user15185126pow(x, 1.0/57.0);
pow
)。 - Robert Dodier