Heim >Web-Frontend >js-Tutorial >JavaScript implementiert den arithmetischen Quadratwurzelalgorithmus – supereinfache Code_Javascript-Kenntnisse

JavaScript implementiert den arithmetischen Quadratwurzelalgorithmus – supereinfache Code_Javascript-Kenntnisse

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-05-16 15:39:402796Durchsuche

Vor ein paar Tagen habe ich einen Quadratwurzelcode von Thors Hammer gesehen. Das Prinzip wurde an vielen Stellen eingeführt, daher werde ich nicht auf Details eingehen.

Der Quellcode ist in der Sprache C geschrieben. Nachdem ich darüber nachgedacht hatte, stellte ich fest, dass ein solcher Algorithmus auch in JavaScript vervollständigt werden kann.

function InvSqrt(x){
  var h=0.5*x;
  var b=new ArrayBuffer(4);
  var d=new DataView(b,0);
  d.setFloat32(0,x);
  var i=d.getInt32(0);
  i=0x5f375a86-(i>>1);
  d.setInt32(0,i);
  var r=d.getFloat32(0);
  r=r*(1.5-h*r*r);
  return r;
}

Test:

console.time("t");
for(var i=0;i<10000000;i++){
 InvSqrt(i);
}
console.timeEnd("t");

console.time("t");
for(var i=0;i<10000000;i++){
 1/Math.sqrt(i);
}
console.timeEnd("t");
VM2303:18 t: 33438.000ms
VM2303:24 t: 16720.000ms

Obwohl das Ergebnis immer noch langsamer ist als die Systembibliothek und die Genauigkeit von Natur aus gering ist. Aber ich bin zufrieden.

Das Obige ist die Implementierung des arithmetischen Quadratwurzelalgorithmus mit JavaScript. Freunde, die es brauchen, kommen und lernen es. !

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn