天天看點

子產品------計算對數

1、計算以e為底的對數,我們可以直接使用log函數:my $log_e = log($value);

2、計算以10為底的對數:

      use POSIX qw(log10);my $log_10 = log10($value);

3、有了以上兩個函數中的任何一個,那麼我們就可以計算任意數的對數了,計算方法為:log n (x) = (log A (x) / log A (n)),(其中A為任意正數,當然可以是10或者e),按照這個公式,構造子程式如下:

  1. sub log_base {
  2.     my ($value,$base) = @_;
  3.     return log($value)/log($base);  ####推薦!!!!或者 return log10($value)/log10($base); 
  4. }

通過上面的子程式,我們就可以随時調用,做任意的對數運算了。

4、perl給我們提供了Math::Complex子產品,用來計算任意數的對數:  #####推薦!

use Math::Complex;

my $log_n = logn(x);

eg:

  1. use Math::Complex;
  1. printf “log2(1024) = %lf\n“, logn(1024, 2);         # log2(1024) = 10.000000

參考:http://yangl.net/2016/06/20/perl_log/