20

我使用下面的方法来计算双值的第 N 根,但是计算第 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;
}
4

2 回答 2

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

来自维基百科

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

\sqrt[n]{x} \,=\, x^{1/n} 
于 2013-09-06T12:15:38.930 回答
2

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

要找到 X 的 N 根,您可以编写,

int root = Convert.ToInt32(Math.Pow(X, (1 / N)); 
于 2018-04-16T16:47:30.197 回答