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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
JQuery each()函数如何优化循环DOM结构的性能
Dec 10 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
JavaScript插件化开发教程 (四)
Jan 27 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
Apr 12 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
详解vue axios二次封装
Jul 22 Javascript
React优化子组件render的使用
May 12 Javascript
react PropTypes校验传递的值操作示例
Apr 28 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上传文件中文文件名乱码的解决方法
2013/11/01 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Python实现简易端口扫描器代码实例
2017/03/15 Python
python获取地震信息 微信实时推送
2019/06/18 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
python如何调用百度识图api
2020/09/29 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
元旦晚会邀请函
2014/01/27 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
绿里奇迹观后感
2015/06/15 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android