Saturday, February 10, 2007
Perl/펄] 배열 요소 순서 랜덤하게 무작위로 뒤섞기(셔플); Array Random-Shuffle
배열이나 리스트의 요소들에는 순서가 있습니다. 그 순서를 무작위로 변경하여 출력하는 방법입니다. 카드를 섞듯이 뒤섞는 것입니다.
가나다 순으로 정렬되어 있는 데이터의 순서를, 임의의 순서로 변경해야 할 때 유용할 것입니다.
펄의 기본 모듈인 List::Util 의 shuffle 함수를 사용하여 구현합니다.
파일명: example.pl
텍스트 파일을 통째로 랜덤하게 만들기: ▶▶ Perl/펄] 텍스트 파일 각 행을, 랜덤하게 무작위로 뒤섞기; Text File Random-Shuffle Lines
가나다 순으로 정렬되어 있는 데이터의 순서를, 임의의 순서로 변경해야 할 때 유용할 것입니다.
펄의 기본 모듈인 List::Util 의 shuffle 함수를 사용하여 구현합니다.
배열/리스트 순서 무작위로 변경(셔플) 예제
파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;
use List::Util qw(shuffle);
###################################################
# 배열 요소 랜덤하게 섞기
my @a = qw( AAA BBB CCC DDD EEE ZZZ );
@a = shuffle @a;
print "$_ " foreach @a;
=pod
출력 결과 (다음과 같은 식으로 출력):
EEE CCC BBB AAA ZZZ DDD
BBB AAA EEE ZZZ DDD CCC
CCC DDD EEE AAA ZZZ BBB
=cut
print "\n\n"; # 줄바꿈
###################################################
# 리스트 요소 무작위로 섞어서 출력
@a = shuffle 0..5;
print "$_ " foreach @a;
=pod
출력 결과 (다음과 같은 식으로 출력):
1 4 3 5 0 2
4 2 5 3 0 1
1 5 4 3 0 2
=cut
print "\n\n"; # 줄바꿈
###################################################
# 응용: 지정한 범위의 숫자에서만 랜덤 넘버 출력
print "$_, " foreach shuffle 3..9;
=pod
출력 결과 (다음과 같은 식으로 출력):
8, 3, 4, 9, 5, 6, 7,
5, 4, 7, 8, 6, 9, 3,
9, 7, 8, 3, 6, 4, 5,
=cut
use strict; use warnings;
use List::Util qw(shuffle);
###################################################
# 배열 요소 랜덤하게 섞기
my @a = qw( AAA BBB CCC DDD EEE ZZZ );
@a = shuffle @a;
print "$_ " foreach @a;
=pod
출력 결과 (다음과 같은 식으로 출력):
EEE CCC BBB AAA ZZZ DDD
BBB AAA EEE ZZZ DDD CCC
CCC DDD EEE AAA ZZZ BBB
=cut
print "\n\n"; # 줄바꿈
###################################################
# 리스트 요소 무작위로 섞어서 출력
@a = shuffle 0..5;
print "$_ " foreach @a;
=pod
출력 결과 (다음과 같은 식으로 출력):
1 4 3 5 0 2
4 2 5 3 0 1
1 5 4 3 0 2
=cut
print "\n\n"; # 줄바꿈
###################################################
# 응용: 지정한 범위의 숫자에서만 랜덤 넘버 출력
print "$_, " foreach shuffle 3..9;
=pod
출력 결과 (다음과 같은 식으로 출력):
8, 3, 4, 9, 5, 6, 7,
5, 4, 7, 8, 6, 9, 3,
9, 7, 8, 3, 6, 4, 5,
=cut
텍스트 파일을 통째로 랜덤하게 만들기: ▶▶ Perl/펄] 텍스트 파일 각 행을, 랜덤하게 무작위로 뒤섞기; Text File Random-Shuffle Lines
tag: perl
Perl | 펄
<< Home