Hallo,
Folgender PHP-Code ist zumindest schneller als die Newton-Variante (einfach ein $, dann läufts auch schon in PHP *g*):
pow(2,ceil(log($zahl, 2)))
Cool, hätte ich nicht eigentlich gedacht.
In javascript geht es nicht ganz so einfach, weil es nur ln (Basis e) und log (Basis 10) gibt. Man kann sich für Basis 2 so behelfen:
var logarithmisch = function(zahl) {
with (Math) { return pow(2,ceil(log(zahl)/log(2))); }
}
Das ist aber etwas langsamer als die Newton-Variante. Das Tempo hängt aber ebenfalls nicht von der Größe der Zahlen ab:
60000 Zahlen 1...60001
Newton: 344
Log: 391
60000 Zahlen 89940000...90000000
Newton: 343
Log: 406
60000 Zahlen 1073681823...1073741823
Newton: 313
Log: 406
Gruß, Don P