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让setInteval里的函数参数中的this指向特定的对象
Jan 31 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
JavaScript中的操作符==与===介绍
Dec 31 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
JavaScript键盘事件常见用法实例分析
Jan 03 Javascript
node(koa2) web应用模块介绍详解
Mar 29 Javascript
微信小程序实现吸顶效果
Jan 08 Javascript
vue 数据操作相关总结
Dec 17 Vue.js
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分页显示制作详细讲解
2006/10/09 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
php接口技术实例详解
2016/12/07 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
python__new__内置静态方法使用解析
2020/01/07 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
2014年国培研修感言
2014/03/09 职场文书
和睦家庭事迹
2014/05/14 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
借钱欠条怎么写
2015/07/03 职场文书