大家好,欢迎来到IT知识分享网。
一、了解根号运算
根号运算是一种数学运算,也称为开方运算。它的运算符号是 √ ̄
,被称为根号符号,要将被开方的数包围。若 aⁿ=b
,那么 a
是 b
开 n
次方的 n
次方根或 a
是 b
的 1/n
次方。
开 n
次方的 n
写在符号 √ ̄
的左边,n=2
(平方根)时 n
可以忽略不写
x
\sqrt{x}
x
,但若是立方根(三次方根)
x
3
\sqrt[3]{x}
3x
、四次方根
x
4
\sqrt[4]{x}
4x
等,是必须书写。
我们比较常见的也就是求一个数的平方根了,对于一个非负实数 x
,它的平方根 y
是一个非负实数,使得 y
的平方等于 x
,即 y²=x
。例如,
4
\sqrt{4}
4
=2,因为 2²=4
。
9
\sqrt{9}
9
=3,因为 3²=9
。
需要注意的是,在实数范围内,负数没有实数平方根,因此,不能对负数进行开方运算,除非使用复数。
在计算中,可以利用计算器或数表等工具进行简便的根号运算,也可以通过手工计算,使用牛顿迭代法等算法进行近似计算。
二、Java开根号
1.Math.sqrt()开平方根
Java 中可以使用 Math
类的 sqrt
方法来实现平方根号运算。该方法的作用是返回一个数的平方根。
Math
类在 java.lang
包下,也是一个最终类,JDK1.0 就存在了。Math
类包含执行基本数值运算的方法,例如初等指数函数、对数函数、平方根函数和三角函数等。
public final class Math {}
Math
类中有 sqrt
方法,求平方根。以下是 sqrt()
方法源码:
/\*\* \* Returns the correctly rounded positive square root of a \* {@code double} value. \* Special cases: \* <ul><li>If the argument is NaN or less than zero, then the result \* is NaN. \* <li>If the argument is positive infinity, then the result is positive \* infinity. \* <li>If the argument is positive zero or negative zero, then the \* result is the same as the argument.</ul> \* Otherwise, the result is the {@code double} value closest to \* the true mathematical square root of the argument value. \* \* @param a a value. \* @return the positive square root of {@code a}. \* If the argument is NaN or less than zero, the result is NaN. \*/ public static double sqrt(double a) { return StrictMath.sqrt(a); // default impl. delegates to StrictMath // Note that hardware sqrt instructions // frequently can be directly used by JITs // and should be much faster than doing // Math.sqrt in software. }
我们可以看到该方法是静态方法,也就是可以通过 Math.sqrt()
直接调用。需要传入双精度 double
类型数值,返回的也是 double
类型数值。方法体很简单直接调用 StrictMath.sqrt(a);
它这里解释说默认的 impl
,委托给 StrictMath
。
例如,要计算 9
的平方根,可以使用以下代码:
double result = Math.sqrt(9); System.out.println(result); // 输出结果为3.0
需要注意的是,sqrt
方法返回的是一个 double
类型的数值,如果需要精确计算,应该使用 BigDecimal
类进行计算。
我们在深究一下:
在 Java 中,根号运算被委托给了 Java 虚拟机中的 Math
库进行计算。Math
库中的 sqrt
方法采用了一些数学算法来求解开方运算,具体实现方式取决于底层的操作系统和硬件平台。
通常情况下,Java 虚拟机会使用硬件指令来进行数学计算,这样可以大大提高计算速度。对于无法使用硬件指令的情况,Java 虚拟机会使用软件实现的算法来进行计算。
无论使用哪种实现方式,Math
库的 sqrt
方法都会返回一个 double
类型的结果,表示被开方数的平方根。我们可以直接使用该结果进行后续的操作,例如计算平方根的倒数、平方等等。需要注意的是,sqrt
方法返回的结果并不是精确的,而是一个近似值,具体精度取决于底层实现的算法和硬件平台。如果需要进行高精度的计算,可以使用 BigDecimal
类来替代 Math
库中的方法。
2.Math.pow()开根号
在 Java 中,可以使用 Math
库的 pow
方法来进行求平方根的运算,但不是最有效的方法,因为 Math.pow()
通常使用指数函数来计算, 指数函数在近似计算时可能会导致精度误差。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
8a67243c1008edf79.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150655.html