rand 또는 srand 서브루틴

용도

의사 난수를 생성합니다.

라이브러리

표준 C 라이브러리(libc.a)

구문

#include <stdlib.h> 
int rand
void srand ( Seed)
unsigned int Seed;

설명

주의: 멀티스레드 환경에서는 rand 서브루틴을 사용하지 마세요. 멀티스레드 대안은 ' rand_r (rand_r 서브루틴) 하위 루틴 문서를 참조하세요.

랜덤 서브루틴은 곱셈 합동 알고리즘을 사용하여 의사 난수를 생성합니다. 난수 생성기는 2**32의 주기를 가지며 0에서 (2**15) -1 범위의 연속적인 의사 난수를 반환합니다.

Srand 서브루틴은 난수 생성기를 새로운 시작점으로 재설정합니다. Seed 매개변수를 이후 rand 서브루틴을 호출하여 반환할 의사 난수 시퀀스의 새 시드로 사용합니다. 그런 다음 동일한 시드 값으로 srand 서브루틴을 호출하면 rand 서브루틴이 의사 난수 시퀀스를 반복합니다. Srand 서브루틴을 호출하기 전에 rand 서브루틴을 호출하면 시드 값이 1인 srand 서브루틴을 처음 호출했을 때와 동일한 숫자 시퀀스를 생성합니다.

참고: 랜덤 서브루틴은 간단한 난수 생성기입니다. 무작위성의 수학적 측정치인 스펙트럼 속성은 다소 제한적입니다. 스펙트럼 특성이 더 큰 보다 정교한 난수 생성기는 drand48 서브루틴 또는 random 서브루틴을 참조하세요.

매개변수

항목 설명
Seed 초기 시드 (seed) 값을 지정합니다.

리턴 값

성공적으로 완료되면 랜덤 서브루틴은 다음 난수를 순서대로 반환합니다. Srand 서브루틴은 값을 반환하지 않습니다.

위에서 언급했듯이 더 나은 난수 생성기가 있지만, randsrand 서브루틴은 ANSI C 라이브러리에 정의된 인터페이스입니다.

다음 함수는 랜드 샌드 서브루틴의 의미를 정의하며, 다른 구현에서 애플리케이션을 쉽게 이식할 수 있도록 여기에 포함되어 있습니다:

static unsigned int next = 1;
int rand( )
{
next = next 
*
 1103515245 + 12345;
return ((next >>16) & 32767);
}
void srand (Seed)


unsigned 
int Seed;
{
next = Seed;
}