Saturday, January 20, 2007
Perl/펄] log (ln), log10, log2, 상용 로그 함수, 밑이 10, 2인 로그 구하기
펄에는 자연로그(Natural Logarithm)를 구하는 log() 함수만 있기에, 밑(Base)이 10인 상용 로그나, 밑이 2인 로그를 구하려면 직접 함수를 만들어야 합니다. 아래 예제에 logB() 라는 함수가 있는데
logB(숫자, 밑)
이런 형식으로 임의의 숫자를 밑으로 사용할 수 있습니다.
파일명: 0.pl
위의 예제 실행 결과 화면:
▶▶ Perl/펄] 자연 로그의 밑 e 상수 선언 출력; Natural Logarithm, Euler Constant
로그 계산기: ▶▶ 로그계산기; 로그값 구하기; 상용로그, 자연로그, 밑이 2인 로그; Log Calc
logB(숫자, 밑)
이런 형식으로 임의의 숫자를 밑으로 사용할 수 있습니다.
자연로그, 상용로그, 밑이 10인 로그, 밑이 2인 로그 계산 함수
파일명: 0.pl
#!/usr/bin/perl
use strict; use warnings;
print(" 자연 로그 :\n\n");
for (my $d = 1; $d <= 10; $d++) {
printf(" ln(%2.0f) = %.16f\n", $d, log($d));
}
print("\n\n\n 상용 로그 (밑이 10인 로그) :\n\n");
for (my $d = 1; $d <= 10; $d++) {
printf("log10(%2.0f) = %.16f\n", $d, logB($d, 10));
}
print("\n\n\n 밑이 2인 로그 :\n\n");
for (my $d = 1; $d <= 10; $d++) {
printf(" log2(%2.0f) = %.16f\n", $d, logB($d, 2));
}
sub logB {
return log($_[0]) / log($_[1]);
}
use strict; use warnings;
print(" 자연 로그 :\n\n");
for (my $d = 1; $d <= 10; $d++) {
printf(" ln(%2.0f) = %.16f\n", $d, log($d));
}
print("\n\n\n 상용 로그 (밑이 10인 로그) :\n\n");
for (my $d = 1; $d <= 10; $d++) {
printf("log10(%2.0f) = %.16f\n", $d, logB($d, 10));
}
print("\n\n\n 밑이 2인 로그 :\n\n");
for (my $d = 1; $d <= 10; $d++) {
printf(" log2(%2.0f) = %.16f\n", $d, logB($d, 2));
}
sub logB {
return log($_[0]) / log($_[1]);
}
위의 예제 실행 결과 화면:
D:\Z>0.pl
자연 로그 :
ln( 1) = 0.0000000000000000
ln( 2) = 0.6931471805599453
ln( 3) = 1.0986122886681098
ln( 4) = 1.3862943611198906
ln( 5) = 1.6094379124341003
ln( 6) = 1.7917594692280550
ln( 7) = 1.9459101490553132
ln( 8) = 2.0794415416798357
ln( 9) = 2.1972245773362196
ln(10) = 2.3025850929940459
상용 로그 (밑이 10인 로그) :
log10( 1) = 0.0000000000000000
log10( 2) = 0.3010299956639811
log10( 3) = 0.4771212547196624
log10( 4) = 0.6020599913279623
log10( 5) = 0.6989700043360188
log10( 6) = 0.7781512503836435
log10( 7) = 0.8450980400142567
log10( 8) = 0.9030899869919434
log10( 9) = 0.9542425094393249
log10(10) = 1.0000000000000000
밑이 2인 로그 :
log2( 1) = 0.0000000000000000
log2( 2) = 1.0000000000000000
log2( 3) = 1.5849625007211563
log2( 4) = 2.0000000000000000
log2( 5) = 2.3219280948873622
log2( 6) = 2.5849625007211561
log2( 7) = 2.8073549220576042
log2( 8) = 3.0000000000000000
log2( 9) = 3.1699250014423126
log2(10) = 3.3219280948873626
D:\Z>
자연 로그 :
ln( 1) = 0.0000000000000000
ln( 2) = 0.6931471805599453
ln( 3) = 1.0986122886681098
ln( 4) = 1.3862943611198906
ln( 5) = 1.6094379124341003
ln( 6) = 1.7917594692280550
ln( 7) = 1.9459101490553132
ln( 8) = 2.0794415416798357
ln( 9) = 2.1972245773362196
ln(10) = 2.3025850929940459
상용 로그 (밑이 10인 로그) :
log10( 1) = 0.0000000000000000
log10( 2) = 0.3010299956639811
log10( 3) = 0.4771212547196624
log10( 4) = 0.6020599913279623
log10( 5) = 0.6989700043360188
log10( 6) = 0.7781512503836435
log10( 7) = 0.8450980400142567
log10( 8) = 0.9030899869919434
log10( 9) = 0.9542425094393249
log10(10) = 1.0000000000000000
밑이 2인 로그 :
log2( 1) = 0.0000000000000000
log2( 2) = 1.0000000000000000
log2( 3) = 1.5849625007211563
log2( 4) = 2.0000000000000000
log2( 5) = 2.3219280948873622
log2( 6) = 2.5849625007211561
log2( 7) = 2.8073549220576042
log2( 8) = 3.0000000000000000
log2( 9) = 3.1699250014423126
log2(10) = 3.3219280948873626
D:\Z>
▶▶ Perl/펄] 자연 로그의 밑 e 상수 선언 출력; Natural Logarithm, Euler Constant
로그 계산기: ▶▶ 로그계산기; 로그값 구하기; 상용로그, 자연로그, 밑이 2인 로그; Log Calc
tag: perl
Perl | 펄
<< Home