Don P: Nächste Zweierpotenz berechnen

Beitrag lesen

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