기능 rand() 에서는 Perl

에서는 Perl 프로그래밍 언어가 내장된 기능 rand(). 이 기능을 생성하는 데 사용되는 임의의 숫자입니다.

예를 들어 다음과 같습니다.

▶ Run
#!/usr/bin/perl

print rand(10);

이 프로그램이 표시되는 임의의 숫자를 사 0 (포함) 10 (포함하지 않고 그 수 10).

예를 들어,이 프로그램될 수 있 수 2.61509101678715.

제한

기능 rand() 개의 반환 의사 난수. 어떤 상황에서는,조건에 따라서는 것이 가능해 예측 어떤 값을 반환합니다 함수 rand(). 이에서 다음과 같이하는 이 기능을 암호화하지 않습니다. 이 기능을 사용하지 않아야에서는 암호화,그러나 일부를 임의의 값의 범위 암호화 이 기능에 이상적입니다.

인수

my $value1 = rand();
my $value2 = rand($number);

기능 rand() 없이 사용할 수 있습니다 모든 인수 또는 포기는 그녀의 정확히 한다. 함수가 기대하는 숫자로 인수 값입니다. 는 경우 기능을 받지 않는 번호 그녀는 그에게 숫자입니다.

를 사용하여 동일한 인수

을 사용할 때는 긍정적으로 숫자의 인수 기능 rand() 의 수를 반환합니다 보다 크거나 같은 0 고 엄격하게 보다 적은 인수. 예를 들어,사용하는 경우 100에 으로 인수할 수 있습을 얻을 수 72.9877832186506 으로 기능과 rand().

당신이 사용할 수 있는 소수의 인수입니다. 을 지정하는 경우 rand(1.5)결과가 보다 큰 숫자 또는 동 0 고 엄격하게 더 적은 1.5.

을 사용할 때 음수로 인수 기능 숫자를 반환하는 은 엄격하게 더 큰 것보다는 지정된 인수가 작거나 같음 0.

사용하지 않고 인수

사용 rand() 이 없는 인수와 같은 그것을 사용하는 것을 인수 1. 기능 rand() 것입니다 숫자를 반환하는 보다 크거나 같은 0 고 엄격하게 더 적은 1,예를 들어 0.813735968739824.

▶ Run
#!/usr/bin/perl

print rand(1);

참고로,지정하지 않은 경우,인수수수 1 이아닌 값 의 기본 변수 $_. 를 사용하려면 $_ 값으로 rand(),작성하는 것이 필요하다는 명시적으로:

▶ Run
#!/usr/bin/perl

$_ = 3;

print rand($_);

0 으로 인수 값

0 값으로 함수의 인수 rand() 은 특별한 경우이다. rand(0) 과 같 rand(1). 의 기능을 반환합니다 숫자보다 크거나 같은 0 고 엄격하게 더 작은 1.

의 사용을 하나 이상의 인수

는 경우 전송 기능 rand() 하나 이상의 인수,그것은 오류가:

Too many arguments for rand at script.pl line 3, near "2)"
Execution of script.pl aborted due to compilation errors.

공식적인 문서

여기에 출력하는 명령의 perldoc -f rand:

       rand EXPR
       rand    Returns a random fractional number greater than or equal to 0
               and less than the value of EXPR.  (EXPR should be positive.)
               If EXPR is omitted, the value 1 is used.  Currently EXPR with
               the value 0 is also special-cased as 1 (this was undocumented
               before Perl 5.8.0 and is subject to change in future versions
               of Perl).  Automatically calls "srand" unless "srand" has
               already been called.  See also "srand".

               Apply "int()" to the value returned by "rand()" if you want
               random integers instead of random fractional numbers.  For
               example,

                   int(rand(10))

               returns a random integer between 0 and 9, inclusive.

               (Note: If your rand function consistently returns numbers that
               are too large or too small, then your version of Perl was
               probably compiled with the wrong number of RANDBITS.)

               "rand()" is not cryptographically secure.  You should not rely
               on it in security-sensitive situations.  As of this writing, a
               number of third-party CPAN modules offer random number
               generators intended by their authors to be cryptographically
               secure, including: Data::Entropy, Crypt::Random,
               Math::Random::Secure, and Math::TrulyRandom.

다른 기사