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帮助之筛选查找 children([expr])
Jan 31 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
创建js对象和js类的方法汇总
Dec 24 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
原生JS实现垂直手风琴效果
Feb 19 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
Sep 21 Javascript
微信小程序实现同时上传多张图片
Feb 03 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
Mar 06 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 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 使用post,get的一种简洁方式
2010/04/25 PHP
php常用hash加密函数
2014/11/22 PHP
动态加载iframe
2006/06/16 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
javascript类型转换示例
2014/04/29 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
Angular排序实例详解
2017/06/28 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
vue地区选择组件教程详解
2018/05/04 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
django rest framework之请求与响应(详解)
2017/11/06 Python
python 除法保留两位小数点的方法
2018/07/16 Python
Linux下python制作名片示例
2018/07/20 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python @property使用方法解析
2019/09/17 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
python实现翻译word表格小程序
2020/02/27 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
最新自我评价范文
2013/11/16 职场文书
培训专员岗位职责
2014/02/26 职场文书
企业出纳岗位职责
2014/03/12 职场文书
创业计划书之酒吧
2019/12/02 职场文书