C#找到Nth Root

时间:2013-09-06 12:07:46

标签: c#

我使用下面的方法来计算double值的Nth Root,但是计算第240个根需要花费很多时间。我发现了牛顿方法,但由于我的编程技巧有限,无法将其实现为一种方法,我将不胜感激。

static double NthRoot(double A, int N)
            {
                double epsilon = 0.00001d;//
                double n = N;
                double x = A / n;
                while (Math.Abs(A-Power(x,N)) > epsilon)
                {
                    x = (1.0d/n) * ((n-1)*x + (A/(Power(x, N-1))));
                }
                return x;

            }

2 个答案:

答案 0 :(得分:37)

static double NthRoot(double A, int N)
{
    return Math.Pow(A, 1.0 / N);
}

来自Wikipedia

在微积分中,根被视为取幂的特殊情况,其中指数是分数:

\sqrt[n]{x} \,=\, x^{1/n} 

答案 1 :(得分:1)

您可以使用相同的函数来查找数字的幂,只需使用数字的倒数而不是数字本身。

要查找X的N根,您可以写,

int root = Convert.ToInt32(Math.Pow(X, (1 / N));