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 相关文章推荐
jquery实现心算练习代码
Dec 06 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
JavaScript实现简单的数字倒计时
May 15 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 Javascript
深入解析Javascript闭包的功能及实现方法
Jul 10 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
Sep 17 Javascript
jQuery插件Echarts实现的渐变色柱状图
Mar 23 jQuery
Vue兼容ie9的问题全面解决方案
Jun 19 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
layui使用templet格式化表格数据的方法
Sep 16 Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 Javascript
vue实现折线图 可按时间查询
Aug 21 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
杏林同学录(四)
2006/10/09 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
JavaScript—window对象使用示例
2013/12/09 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
五一服装活动方案
2014/01/11 职场文书
烹调加工管理制度
2014/02/04 职场文书
总会计师岗位职责
2014/02/19 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
说明书怎么写
2014/05/06 职场文书
高三毕业感言
2015/07/30 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
Python机器学习之底层实现KNN
2021/06/20 Python