Maison >interface Web >js tutoriel >JavaScript implémente un algorithme arithmétique de racine carrée - compétences code_javascript super simples

JavaScript implémente un algorithme arithmétique de racine carrée - compétences code_javascript super simples

WBOY
WBOYoriginal
2016-05-16 15:39:402757parcourir

Il y a quelques jours, j'ai vu un code racine carrée de Thor's Hammer. Le principe a été introduit à de nombreux endroits, je n'entrerai donc pas dans les détails.

Le code source est écrit en langage C. Après réflexion, j'ai découvert qu'un tel algorithme pouvait également être complété en JavaScript.

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

Bien que le résultat soit toujours plus lent que celui de la bibliothèque système et que la précision soit intrinsèquement faible. Mais je suis satisfait.

Ce qui précède est l'implémentation de l'algorithme arithmétique de racine carrée en utilisant JavaScript. Qu'en est-il ? Le code est très simple. Amis qui en ont besoin, venez l'apprendre. !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn