JavaScript实现算术平方根算法-代码超简单


Posted in Javascript onSeptember 11, 2015

前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述。

源码是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实现算术平方根算法算法,怎么样,代码很简单吧,需要的朋友快来学习吧。!

Javascript 相关文章推荐
将函数的实际参数转换成数组的方法
Jan 25 Javascript
javascript里使用php代码实例
Dec 13 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
浅谈angularjs module返回对象的坑(推荐)
Oct 21 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
js将键值对字符串转为json字符串的方法
Mar 30 Javascript
vue.js循环radio的实例
Nov 07 Javascript
js图片卷帘门导航菜单特效代码分享
Sep 10 #Javascript
jQuery超精致图片轮播幻灯片特效代码分享
Sep 10 #Javascript
手机端转盘抽奖代码分享
Sep 10 #Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 #Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
Sep 10 #Javascript
JS+CSS实现电子商务网站导航模板效果代码
Sep 10 #Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 #Javascript
You might like
php将会员数据导入到ucenter的代码
2010/07/18 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
python中map()与zip()操作方法
2016/02/27 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
深入理解Python3 内置函数大全
2017/11/23 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
车间操作工岗位职责
2013/12/19 职场文书
法学专业自我鉴定
2014/02/05 职场文书
小学生常见病防治方案
2014/06/06 职场文书
师德师风整改措施
2014/10/24 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
花木兰观后感
2015/06/10 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
HTML+JS实现在线朗读器
2022/02/15 Javascript