快捷搜索:  汽车  科技

java实现对数运算(Java普通对数log计算方法)

java实现对数运算(Java普通对数log计算方法)代码实现以x为底y的对数计算工具类:这个就需要使用数学的换底公式:logx(y)=ln(y)/ln(x);如下代码:double x = Math.log(10);等价于:x = ln10 或 x = loge(10),即以e为底的自然对数。问题来了,如果我们要计算非常规底数的对数怎么办呢?比如我们要计算以33为底27的对数(也就是33的多少次方运算结果为27)?

作者:IT_熊

来源:CSDN

java实现对数运算(Java普通对数log计算方法)(1)

java给我提供的数学计算的工具类Math计算对数的函数有两个:

java实现对数运算(Java普通对数log计算方法)(2)

log(double a),log10(double a)从源码doc注释我们可以看到分别是计算自然对数和以10为底的对数。

如下代码:

double x = Math.log(10);

等价于:x = ln10 或 x = loge(10),即以e为底的自然对数。

问题来了,如果我们要计算非常规底数的对数怎么办呢?比如我们要计算以33为底27的对数(也就是33的多少次方运算结果为27)?

这个就需要使用数学的换底公式:logx(y)=ln(y)/ln(x);

代码实现以x为底y的对数计算工具类:

java实现对数运算(Java普通对数log计算方法)(3)

这样我们计算以33为底27的对数:

java实现对数运算(Java普通对数log计算方法)(4)

计算结果:0.9426082478202944

本demo使用log以及换底公式,也可以使用log10和换底公式计算,结果是一样的。

如:

java实现对数运算(Java普通对数log计算方法)(5)

最后,我自己是一名从事了多年开发的JAVA老程序员,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,可以送给每一位喜欢java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:交流,即可免费获取。

java实现对数运算(Java普通对数log计算方法)(6)

猜您喜欢: