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),按照這個公式,構造子程式如下:
- sub log_base {
- my ($value,$base) = @_;
- return log($value)/log($base); ####推薦!!!!或者 return log10($value)/log10($base);
- }
通過上面的子程式,我們就可以随時調用,做任意的對數運算了。
4、perl給我們提供了Math::Complex子產品,用來計算任意數的對數: #####推薦!
use Math::Complex;
my $log_n = logn(x);
eg:
- use Math::Complex;
- printf “log2(1024) = %lf\n“, logn(1024, 2); # log2(1024) = 10.000000
參考:http://yangl.net/2016/06/20/perl_log/