以下の方法でdouble値の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;
}
static double NthRoot(double A, int N)
{
return Math.Pow(A, 1.0 / N);
}
から ウィキペディア :
微積分では、根はべき乗の特殊なケースとして扱われます。ここで、指数は分数です。
\sqrt[n]{x} \,=\, x^{1/n}
数値の累乗を見つけるために使用されるのと同じ関数を使用できます。数値自体の代わりに、数値の逆数を使用するだけです。
XのN根を見つけるには、次のように記述できます。
int root = Convert.ToInt32(Math.Pow(X, (1 / N));