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 相关文章推荐
Dojo 学习要点
Sep 03 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
JQuery遍历元素的后代和同胞实现方法
Sep 18 Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
基于js中的原型(全面讲解)
Sep 19 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
JavaScript设计模式之装饰者模式实例详解
Jan 17 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实现的数字验证码及数字运算验证码
2015/07/30 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
javascript消除window.close()的提示窗口
2015/05/20 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
js实现简易ATM功能
2020/10/27 Javascript
使用requests库制作Python爬虫
2018/03/25 Python
python实现textrank关键词提取
2018/06/22 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Python构建图像分类识别器的方法
2019/01/12 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
python多任务之协程的使用详解
2019/08/26 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
表彰先进集体通报
2014/01/12 职场文书
公司副总经理任命书
2014/06/05 职场文书
农业项目建议书
2014/08/25 职场文书
实习证明格式范文
2014/10/14 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
Python如何配置环境变量详解
2021/05/18 Python
javascript的var与let,const之间的区别详解
2022/02/18 Javascript