Java log2x函数的实现

Java log2x函数的实现,第1张

Java log2x函数的实现 Java实现 log ⁡ 2 ( ) log_2() log2​()函数

在编译大作业的乘除优化中,我参考了一篇paper里用到了 log ⁡ 2 x log_2x log2​x这一函数,但在复现的时候误用了Java中自带的Math.log()函数(该函数实现的是 ln ⁡ x ln x lnx的功能),导致优化时出现了偏差,影响了结果,因此在这里讨论实现Java中的 log ⁡ 2 x log_2x log2​x函数

在数学中,有一个换底公式,如下:
log ⁡ a b = ln ⁡ b ln ⁡ a log_ab = frac{ln b}{ln a} loga​b=lnalnb​
而Java中自带Math.log()方法和Math.log10()方法,可以有助我们实现 log ⁡ 2 x log_2 x log2​x这一函数,转换步骤如下:
log ⁡ 2 x = ln ⁡ x ln ⁡ 2 log_2x = frac{ln x}{ln 2} log2​x=ln2lnx​
因此,我们只需要对最后的结果除以 ln ⁡ 2 ln 2 ln2就行

本题代码如下:

public double log2x(double x) {
  return Math.log(x) / Math.log(2);
}

不光是 log ⁡ 2 x log_2x log2​x,本题可以推导至所有的 log ⁡ m x log_mx logm​x的形式

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5685022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存