Perl Language
임의성
수색…
비고
perl의 rand () 함수에 대한 문서 : http://perldoc.perl.org/functions/rand.html
0과 100 사이의 난수 생성
rand () 함수에 상한값을 인수로 전달합니다.
입력:
my $upper_limit = 100;
my $random = rand($upper_limit);
print $random . "\n";
산출:
임의의 부동 소수점 숫자, ...
45.8733038119139
0과 9 사이의 임의의 정수 생성
임의의 부동 소수점 숫자를 int로 변환합니다.
입력:
my $range = 10;
# create random integer as low as 0 and as high as 9
my $random = int(rand($range)); # max value is up to but not equal to $range
print $random . "\n";
산출:
임의의 정수, 예를 들면 ...
0
무작위로 배열 요소에 액세스하기
my @letters = ( 'a' .. 'z' ); # English ascii-bet
print $letters[ rand @letters ] for 1 .. 5; # prints 5 letters at random
작동 원리
-
rand EXPR
은 스칼라 값을 예상하므로@letters
는 스칼라 컨텍스트에서 평가됩니다. - 스칼라 컨텍스트의 배열은 포함하고있는 요소의 수를 반환합니다 (이 경우 26 개).
-
rand 26
은0 ≤ VALUE < 26
간격의 임의의 소수를 반환합니다. (그것은 결코26
수 없다) - 배열 인덱스는 항상 정수이므로
$letters[rand @letters]
≡$letters[int rand @letters]
- Perl 배열은 인덱스가 제로이므로
$array[rand @array]
는$array[0]
,$array[$#array]
또는 그 중간에있는 원소를 반환합니다.
(같은 원리가 해시에 적용됩니다)
my %colors = ( red => 0xFF0000,
green => 0x00FF00,
blue => 0x0000FF,
);
print ( values %colors )[rand keys %colors];
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow