RAND(3) | 리눅스 프로그래머 매뉴얼 | RAND(3) |
이름¶
rand, srand - random 수 생성기.
사용법¶
#include <stdlib.h> int rand(void); void srand(unsigned int seed);
설명¶
rand() 함수는 0과 RAND_MAX사이의 pseudo-random 정수를 리턴한다.
srand() 함수는 인자를 rand()가 리턴하는 pseudo-random 정수의 새로운 연속된 수들을 위한 종자로 설정한다. 이들 연속된 수들은 같은 seed 값으로 srand()를 호출하여 반복된다.
만일 어떤 seed 값도 제공되지 않는다면, rand() 함수는 자동적으로 1 값으로 종자가 된다.
반환값¶
rand() 함수는 0과 RAND_MAX사이의 값을 반환한다. srand()는 어떤 값도 반환하지 않는다.
주의¶
Linux C 라이브러리의 rand()와 srand() 버전은 random()와 srandom()처럼 같은 random 수 생성기를 사용한다. 그래서 lower-order bit 들은 higher-order bit들 만큼 랜덤하다. 그러나, 예전 rand() 작동에서, lower-order bit들은 higher-order bit들보다 덜 랜덤했다.
Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1990 (1st ed, p. 207))에, 다음과 같은 주석이 있다:
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
j=1+((int) (1000000.0*rand()) % 10);
Random-number 생성은 매우 복잡한 주제이다. Numerical Recipes in C 책(위에 언급한)은 Chapter 7 (Random Numbers)에서 random-number 생성에 관한 실제적인 훌륭한 토론을 제공한다.
더 이론적인 토론을 원하면, 깊이 있게 많은 실제적인 이슈를 다루고 있는 Donald E. Knuth의 The Art of Computer Programming, volume 2 (Seminumerical Algorithms), 2nd 판의 Chapter 3 (Random Numbers)를 참고해라.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.
호환¶
SVID 3, BSD 4.3, ISO 9899
관련 항목¶
역자¶
정강훈 <skyeyes@soback.kornet.net>, 2001년 3월 9일
1995년 5월 18일 | GNU |