JavaScript实现算术平方根算法-代码超简单
作者:bea
前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述。 源码是c语言写的,我思考后发现这样的算法在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.se
前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述。
源码是c语言写的,我思考后发现这样的算法在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;
}
测试:
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实现算术平方根算法算法,怎么样,代码很简单吧,需要的朋友快来学习吧。!
猜你喜欢
您可能感兴趣的文章:
- JS+CSS简单树形菜单实现方法
- 纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
- JS实现超精简响应鼠标显示二级菜单代码
- JS+CSS实现的简单折叠展开多级菜单效果
- 基于Arcgis for javascript实现百度地图ABCD marker的效果
- jquery实现最简单的滑动菜单效果代码
- jQuery实现自动切换播放的经典滑动门效果
- JavaScript中this的9种应用场景及三种复合应用场景
- javascript判断网页是关闭还是刷新
- js查看一个函数的执行时间实例代码
- JavaScript学习笔记(三):JavaScript也有入口Main函数
- JS实现仿QQ面板的手风琴效果折叠菜单代码
- JS实现仿Windows7风格的网页右键菜单效果代码
- jQuery+css实现的蓝色水平二级导航菜单效果代码
- js实现的后台左侧管理菜单代码
- 微信企业号开发之微信考勤Cookies的使用
- 微信企业号开发之微信考勤百度地图定位
- JavaScript处理解析JSON数据过程详解
- 在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法