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
Libérer: 2016-05-16 15:39:40
original
2753 Les gens l'ont consulté

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;
}
Copier après la connexion

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
Copier après la connexion

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. !

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal