JavaScript melaksanakan algoritma punca kuasa dua aritmetik - kemahiran code_javascript yang sangat mudah

WBOY
Lepaskan: 2016-05-16 15:39:40
asal
2750 orang telah melayarinya

Beberapa hari lalu saya melihat kod punca kuasa dua daripada Thor's Hammer Prinsip ini telah diperkenalkan di banyak tempat, jadi saya tidak akan menerangkan secara terperinci.

Kod sumber ditulis dalam bahasa C Selepas memikirkannya, saya mendapati bahawa algoritma sedemikian juga boleh dilengkapkan dalam 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;
}
Salin selepas log masuk

Ujian:

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
Salin selepas log masuk

Walaupun hasilnya masih lebih perlahan daripada pustaka sistem, dan ketepatan sememangnya rendah. Tetapi saya berpuas hati.

Di atas adalah pelaksanaan algoritma punca kuasa dua aritmetik menggunakan JavaScript Bagaimana dengan kod ini sangat mudah. !

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan