Java Taking Logarithms
You need to take the logarithm of a number.
Solution
For logarithms to base e , use java.lang.Math ’s log( ) function:
// Logarithm.java double someValue; // compute someValue... double log_e = Math.log(someValue);
For logarithms to other bases, use the identity that:
loge ( x ) logn ( x ) = ------------------- loge ( n )
where x is the number whose logarithm you want, n is any desired base, and e is the
natural logarithm base. I have a simple LogBase class containing code that imple-
ments this functionality:
// LogBase.java public static double log_base(double base, double value) { return Math.log(value) / Math.log(base); }
Explained
My log_base function allows you to compute logs to any positive base. If you have to perform a lot of logs to the same base, it is more efficient to rewrite the code to cache the log(base) once. Here is an example of using log_base :
My log_base function allows you to compute logs to any positive base. If you have to perform a lot of logs to the same base, it is more efficient to rewrite the code to cache the log(base) once. Here is an example of using log_base :
// LogBaseUse.java public static void main(String argv[]) { double d = LogBase.log_base(10, 10000); System.out.println("log10(10000) = " + d); } C:> java LogBaseUse log10(10000) = 4.0
No comments:
Post a Comment