2013-09-06 28 views
7

İkili değerin Nth Root'unu hesaplamak için aşağıdaki yöntemi kullanıyorum, ancak 240'ıncu kökün hesaplanması çok zaman alıyor. Newton yöntemini öğrendim, ancak sınırlı programlama becerilerimi kullanarak bir yönteme uygulayamadım, herhangi bir yardımı takdir ediyorum. Wikipedia itibarenC# bulmak Nth Root

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; 

      } 
+0

bu bir göz yoktu: matematik olarak

, kökler üs bir kısmını üs özel durumlarda, olarak kabul edilir? http://en.wikipedia.org/wiki/Newton%27s_method#Pseudocode gerçek kodu çevirmek için çok zor olmamalıdır – DrCopyPaste

+1

Burada soru nedir? Sadece daha hızlı olmasını istiyor musun? Ya da newton yönteminin gerçek kodda nasıl görüneceğini açıkça görmek ister misiniz? – DrCopyPaste

+0

POW'a rastladım, ama nedense yukarıda yazdığım yöntemle aynı olsa da. Ben programcı değilim ve kendimi anlayamadığım sürece burada soru sormamıştım. – illusion

cevap

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

:

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

Ama ben 3. kökünü kullanıyorum 1.0/3 == 0.333333333! = 1/3. – lindexi

+4

Bilgisayar aritmetiği, her zaman temel veri türünün kesinliği ile bağlıdır.Yeterli sayılar için, eşittir. –