>웹 프론트엔드 >JS 튜토리얼 >JavaScript는 산술 제곱근 알고리즘을 구현합니다 - 매우 간단한 code_javascript 기술

JavaScript는 산술 제곱근 알고리즘을 구현합니다 - 매우 간단한 code_javascript 기술

WBOY
WBOY원래의
2016-05-16 15:39:402758검색

며칠 전 Thor's Hammer에서 제곱근 코드를 봤습니다. 이 원리는 여러 곳에서 소개되었으므로 자세한 내용은 다루지 않겠습니다.

소스 코드는 C 언어로 작성되어 있는데, 생각해 보니 이런 알고리즘도 자바스크립트로 완성할 수 있다는 걸 알았습니다.

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;
}

테스트:

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

결과는 여전히 시스템 라이브러리에 비해 느리고 정확도도 본질적으로 낮습니다. 그러나 나는 만족한다.

위는 JavaScript를 이용한 산술 제곱근 알고리즘의 구현입니다. 코드가 매우 간단합니다. 필요하신 분들은 꼭 배워보세요. !

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.