수색…


비고

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

rand에 대해서는 perldoc을 참조하십시오.

무작위로 배열 요소에 액세스하기

my @letters = ( 'a' .. 'z' );                # English ascii-bet

print $letters[ rand @letters ] for 1 .. 5;  # prints 5 letters at random

작동 원리

  • rand EXPR 은 스칼라 값을 예상하므로 @letters 는 스칼라 컨텍스트에서 평가됩니다.
  • 스칼라 컨텍스트의 배열은 포함하고있는 요소의 수를 반환합니다 (이 경우 26 개).
  • rand 260 ≤ 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