Chức năng log() trong Perl

Perl ngôn ngữ đã được tích hợp trong chức năng log().

Chức năng log() trả lại tự nhiên, số quy định.

Đây là một ví dụ:

▶ Run
#!/usr/bin/perl

print log(10);

Chương trình sẽ hiển thị 2.30258509299405.

Lập luận

Nếu các chức năng log() không được cho không có lý luận, các chức năng làm việc với định biến $_:

▶ Run
#!/usr/bin/perl

$_ = 3;

print log(); # 1.09861228866811

Tiêu chuẩn bằng cách sử dụng log() là để vượt qua nó một cuộc tranh luận.

Nếu các chức năng chuyển log() nhiều hơn một cuộc tranh luận, nó sẽ là một lỗi mã thực hiện sẽ được dừng lại.

Too many arguments for log at script.pl line 3, near "2)"
Execution of script.pl aborted due to compilation errors.

Khi bạn cố gắng để tính tự nhiên của zero là một lỗi:

▶ Run
#!/usr/bin/perl

log(0);
Can't take log of 0 at script.pl line 3.

Trở lại giá trị

Chức năng log() luôn luôn trở về một con số.

Việc sử dụng các căn cứ khác

Chức năng log() trả lại tự nhiên, tức là mũ cơ sở e. Nếu bạn muốn để thập phân đến một căn cứ quân sự, sau đó, bạn có thể viết chức năng:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;
use feature qw(say);

sub log_base {
    my ($base, $n) = @_;

    return log($n)/log($base);
};

say log_base(2, 4); # 2
say log_base(2, 256); # 8
say log_base(10, 1000); # 3

Tài liệu chính thức

Đây là kết quả của sự chỉ huy perldoc -f log:

    log EXPR
    log     Returns the natural logarithm (base *e*) of EXPR. If EXPR is
            omitted, returns the log of $_. To get the log of another base,
            use basic algebra: The base-N log of a number is equal to the
            natural log of that number divided by the natural log of N. For
            example:

                sub log10 {
                    my $n = shift;
                    return log($n)/log(10);
                }

            See also "exp" for the inverse operation.

Chủ đề liên quan

Các bài viết khác