2012-03-25 20 views
0

Könnte jemand die Schritte erklären, die bei der Lösung von etwas wie 2^2.2 beteiligt sind, wenn Brüche nicht verwendet werden könnten, wie in einer unendlichen Genauigkeitsberechnung?Algorithmus zum Lösen von Dezimal Exponenten ohne Brüche

+0

Was meinst du mit „Fraktionen“ in diesem Zusammenhang beschäftigen? Ein typischer Ansatz zur Berechnung beliebiger Leistungen besteht darin, über die Log-Domäne zu gehen. –

+0

@OliCharlesworth Ich meine, ohne die Dezimalzahl in einen zu lösenden Bruch zu konvertieren, alle Beispiele, die ich für dezimale Exponenten gesehen habe, beinhalteten immer die Änderung des Dezimal-Exponenten in einen Bruch. Zum Beispiel, wenn Sie 2^2,2 auf einem Blatt Papier ohne Taschenrechner gemacht hätten, wie würden Sie dann 2^(1/5) berechnen? –

Antwort

0

Eine typische Implementierung von pow(x,y) (d. H. x^y) beinhaltet die Berechnung exp(y*log(x)). Keine Fraktionen beteiligt.

2

Im allgemeinen Fall a^b wo ^ ist Potenzierung (nicht XOR), und a und b reelle Zahlen sind:

pow(a,b) = exp(b * log(a)) 
exp(x) = sum[n = 0->inf] x^n/n! 
ln(x) = sum[n = 1->inf] (x-1)^n/n 
x^n  = n == 0 ? 1 // unless x == 0 
      (n%2==0) ? x^(n/2) * x^(n/2) 
      othewrwise x*x^(n-1) 
      // faster than loop for large n, 

Diese requries zwei Serien, die Sie bei einer bestimmten Präzision beenden müssen, aber die Potenzierung ist nur mit natürlichen Zahlen.

Sie müssen auch mit Zeichen von a und b (a^-b = 1/(a^b)), Nullwerte usw.

Verwandte Themen