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给我提供的数学计算的工具类Math计算对数的函数有两个:
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的对数计算工具类:
这样我们计算以33为底27的对数:
计算结果:0.9426082478202944
本demo使用log以及换底公式,也可以使用log10和换底公式计算,结果是一样的。
如:
最后,我自己是一名从事了多年开发的JAVA老程序员,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,可以送给每一位喜欢java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:交流,即可免费获取。