是否有任何其他订单的平方根函数?

时间:2016-03-01 07:00:52

标签: c++ math

我必须计算这个数字的sqrt。我不知道英语中变量m的名称是什么。 enter image description here

4 个答案:

答案 0 :(得分:6)

由于大量数字的乘积可能会变得过大,因此通常最好将几何平均值计算为数字对数的普通算术平均值的指数。

C ++标准库提供log表示自然对数,exp表示使用base e 表示。因此:

#include <math.h>

auto geometric_mean( double const* const first, double const* const past_end )
    -> double
{
    double sum = 0;
    for( double const* p = first; p != past_end; ++p )
    {
        sum += log( *p );
    }
    const int n = past_end - first;
    return exp( sum/n );
}

您可以使用std::accumulate

代替循环

免责声明:代码未触及编码器的手。

答案 1 :(得分:3)

您可以执行此操作pow(x, 1.0/m)。与m相同。根

答案 2 :(得分:2)

使用以下内容:

#include <cmath>
...
double nth_root = std::pow(number, 1.0 / n);

答案 3 :(得分:0)

https://en.wikipedia.org/wiki/Nth_root

m是根的程度,其下的产品是radicand。