Perl 펄] 중앙값, 중간값, 메디안 구하기 함수; Median Function
Monday, May 28, 2007
스폰서 링크숫자가 들어 있는 배열에서, 중앙값(Median)을 구하는 방법입니다. 아래의 getMedian 함수를 사용하면 됩니다.
중앙값을 구하기 전에, 반드시 배열의 숫자들을 크기 순으로 소트해야 합니다.
소스 파일명: example.pl
중앙값이란? : ▶▶ 매스매티카] 중앙값, 중간값, 메디안 구하기 함수; Mathematica Median
중앙값 계산기: ▶▶ 평균 계산기, 합계 구하기, 표준편차 계산기, 중앙값; Sum Average Stdev Median Calc
☞ Perl | 펄
중앙값을 구하기 전에, 반드시 배열의 숫자들을 크기 순으로 소트해야 합니다.
배열의 중앙값 얻기 예제
소스 파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;
my @a;
my @a_sorted;
@a = ( 1, 2, 3 );
@a_sorted = sortNumber(@a); # 배열 크기순으로 정렬
print getMedian(@a_sorted), "\n";
# 출력 결과: 2
@a = ( 1, 2, 3, 4 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 2.5
@a = ( 4, 3, 1, 2 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 2.5
@a = ( 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 1320
@a = ( 1, 2 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 1.5
@a = ( 100 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 100
# 중앙값 구하기 함수
# 크기 순으로 이미 정렬된 배열을 입력해야 함
# 효율성을 위해 이 함수 자체에는 정렬 기능이 없음
sub getMedian {
my @array = @_; # 파라미터로 입력된 배열 받기
my $len = $#array + 1; # 배열 요소들의 전체 개수 구하기
return undef if ($len == 0); # 빈 배열은 에러 반환
my $center = $len / 2; # 요소 개수의 절반값 구하기
if ($len % 2 == 1) { # 요소 개수가 홀수면
return $array[$center]; # 홀수 개수인 배열에서는 중간 요소를 그대로 반환
} else {
return ($array[$center - 1] + $array[$center]) / 2; # 짝수 개 요소는, 중간 두 수의 평균 반환
}
}
sub sortNumber {
return sort {$a <=> $b} @_;
}
use strict; use warnings;
my @a;
my @a_sorted;
@a = ( 1, 2, 3 );
@a_sorted = sortNumber(@a); # 배열 크기순으로 정렬
print getMedian(@a_sorted), "\n";
# 출력 결과: 2
@a = ( 1, 2, 3, 4 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 2.5
@a = ( 4, 3, 1, 2 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 2.5
@a = ( 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 1320
@a = ( 1, 2 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 1.5
@a = ( 100 );
@a_sorted = sortNumber(@a);
print getMedian(@a_sorted), "\n";
# 출력 결과: 100
# 중앙값 구하기 함수
# 크기 순으로 이미 정렬된 배열을 입력해야 함
# 효율성을 위해 이 함수 자체에는 정렬 기능이 없음
sub getMedian {
my @array = @_; # 파라미터로 입력된 배열 받기
my $len = $#array + 1; # 배열 요소들의 전체 개수 구하기
return undef if ($len == 0); # 빈 배열은 에러 반환
my $center = $len / 2; # 요소 개수의 절반값 구하기
if ($len % 2 == 1) { # 요소 개수가 홀수면
return $array[$center]; # 홀수 개수인 배열에서는 중간 요소를 그대로 반환
} else {
return ($array[$center - 1] + $array[$center]) / 2; # 짝수 개 요소는, 중간 두 수의 평균 반환
}
}
sub sortNumber {
return sort {$a <=> $b} @_;
}
중앙값이란? : ▶▶ 매스매티카] 중앙값, 중간값, 메디안 구하기 함수; Mathematica Median
중앙값 계산기: ▶▶ 평균 계산기, 합계 구하기, 표준편차 계산기, 중앙값; Sum Average Stdev Median Calc
☞ Perl | 펄
Post a Comment
<< Home