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中文入门指南,翻译加实例,jQuery的起点教程
Jan 13 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
Feb 25 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
详细介绍8款超实用JavaScript框架
Oct 25 Javascript
详解JavaScript语法对{}处理的坑爹之处
Jun 05 Javascript
理解JavaScript表单的基础知识
Jan 25 Javascript
bootstrap组件之按钮式下拉菜单小结
Jan 19 Javascript
微信小程序教程系列之新建页面(4)
Apr 17 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
Vue组件之单向数据流的解决方法
Nov 10 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二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python基于贪心算法解决背包问题示例
2017/11/27 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
pycharm快捷键汇总
2020/02/14 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
幼儿教师思想汇报
2014/01/10 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
公民代理授权委托书
2014/09/24 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
驳回起诉裁定书
2015/05/19 职场文书
小平您好观后感
2015/06/09 职场文书