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之appendChild、insertBefore和insertAfter使用说明
Dec 30 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
Jul 21 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
javascript中UMD规范的代码推演
Aug 29 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
JS window对象简单操作完整示例
Jan 14 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
重新认识php array_merge函数
2014/08/31 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
php简单生成随机数的方法
2015/07/30 PHP
php表单处理操作
2017/11/16 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
宣传策划类求职信范文
2014/01/31 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
诚信考试主题班会
2015/08/17 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android