2007年1月14日
關(guān)于java中對數(shù)的計(jì)算
http://dev.poptool.net/host/363/4468363638.shtml

最近為了計(jì)算文檔間的相關(guān)性需要用到對數(shù)的計(jì)算,在網(wǎng)上找到下面的方法:
其中的關(guān)鍵是:1 java標(biāo)準(zhǔn)包提供了自然對數(shù)的計(jì)算方法,2 其他的對數(shù)計(jì)算可

以轉(zhuǎn)換為自然對數(shù)的計(jì)算。

下面是轉(zhuǎn)貼:但不知道誰是原創(chuàng)作者。
后來搜索到這個(gè)連接:
還是人家有專業(yè)精神:
下面是他的描述:
?Java supplies a function to calculate natural logs, base e =

2.718281828459045. To calculate logs to other bases, you need to

multiply by a fixed constant: for a log base b multiply by 1/logeb

?

  Sun的J2SE提供了一個(gè)計(jì)算自然對數(shù)方法——double java.lang.Math.log

(double)。請看如下代碼:
  double x = Math.log(5);
  等價(jià)于下面的數(shù)學(xué)方程:
  x = ln 5
  或
  x = loge5
  其中e是內(nèi)皮爾數(shù)或自然數(shù)。


  如果你想算底不同的對數(shù)又該如何做呢?很遺憾,我們還沒有辦法計(jì)算以10

為底或以2為底的對數(shù)。
??? 但是它們卻是在計(jì)算對數(shù)時(shí)用的最多的。
??? 要想解決這個(gè)問題,我們就要回想曾經(jīng)在學(xué)校里學(xué)過的數(shù)學(xué)和對數(shù)方程:
  logx(y) =loge(x) / loge(y)
  這只需一段簡單的Java程序來實(shí)現(xiàn):
  public class Logarithm {
  ???? static public double log(double value, double base) {
???    return Math.log(value) / Math.log(base);
  ???? }
  }
  計(jì)算100的以10為底的對數(shù)就變?yōu)榉浅:唵瘟耍?br />  double log = Logarithm.log(100, 10); // log is 2.0
  512的以2為底的對數(shù)是:
  double log = Logarithm.log(512, 2); // log is 9.0
  下面的兩個(gè)簡單的方法也都是很有用的:
  static public double log2(double value) {
   return log(value, 2.0);
   }
   static public double log10(double value) {
   return log(value, 10.0);
   }