为了账号安全,请及时绑定邮箱和手机立即绑定

一个求平方根的写的方法,里面好多代码不懂。望大神讲解一下

一个求平方根的写的方法,里面好多代码不懂。望大神讲解一下

编程人生纪 2017-07-12 21:13:17
//计算平方根 public static double sqrt(double c) { if (c < 0) return Double.NaN; double err = 1e -15; double t = c; while (Math.abs(t - c/t) >err *t ) t = (c/t + t) /2.0; return t;      }在这里面(1e -15),实在看不懂这个“le”是一个什么变量。试了好几个也不懂。还有while那段循环看不懂。望解答一下代码
查看完整描述

2 回答

已采纳
?
精慕门9254224

TA贡献167条经验 获得超46个赞

1e-15是指数形式表达浮点数,代表10的-15次方是double类型的正数最小值,while 中math .abs 代表取绝对值,while 循环内部的代码就是开方的算法,不过浮点数计算会有小数溢出,一般精度不够,会丢失精度!

查看完整回答
反对 回复 2017-07-12
?
topband

TA贡献14条经验 获得超12个赞

1e -15;代表10的-15次方。

这个求平方根的算法为牛顿法。是常用的一种算法之一。

如果不专门学习算法的话,不需要去抠这些细节的。只需要知道,这是一个功能函数,作用是求平方根。

另外,如果对算法感兴趣,可以加入学校的acm社团,成为一个acmer,顺便膜拜下楼教主。

查看完整回答
反对 回复 2017-07-13
  • 2 回答
  • 0 关注
  • 1852 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信