G
Guest
Gast
Habe eine Gleitkommazahl als Basis und eine ganzzahlige positive Zahl als Exponent
Math.pow(base,exp) verwended StrictMath und das ist grottig langsam.
ist schon sehr viel besser, bei kleinen Exponenten schön schnell aber mein Exponent kann aber bis zu 1000 groß werden und das ist dann schon wieder sehr langsam.
Muss mehrere Milliarden solcher Berechnungen durchführen mit verschiedenen Basen und Exponenten und will nicht jedes mal Tage auf das Ergebnis warten.
Das muss man doch wesentlich beschleunigen können, z.B. die Zahl halbieren und nur die erste Hälfte "zusammenmultiplizieren" und dann das quadrat davon und man hat das Ergebnis. das ganze dann noch rekursiv, also Divide&Conqer und ratz fatz hat man das Ergebnis.
Bevor ich aber sowas selbst programmiere: gibts da noch eine bessere Lösung und gibts sowas vielleicht schon fertig als Algorithmus?
Math.pow(base,exp) verwended StrictMath und das ist grottig langsam.
Code:
double result = 1;
for (int i = 0; i < exp; i++){
result *= base;
}
Muss mehrere Milliarden solcher Berechnungen durchführen mit verschiedenen Basen und Exponenten und will nicht jedes mal Tage auf das Ergebnis warten.
Das muss man doch wesentlich beschleunigen können, z.B. die Zahl halbieren und nur die erste Hälfte "zusammenmultiplizieren" und dann das quadrat davon und man hat das Ergebnis. das ganze dann noch rekursiv, also Divide&Conqer und ratz fatz hat man das Ergebnis.
Bevor ich aber sowas selbst programmiere: gibts da noch eine bessere Lösung und gibts sowas vielleicht schon fertig als Algorithmus?