srand
|
헤더 파일에 정의됨
<stdlib.h>
|
||
|
void
srand
(
unsigned
seed
)
;
|
||
rand()
함수에서 사용하는 의사 난수 생성기를 값
seed
로 초기화합니다.
만약
rand()
가
srand()
호출보다 먼저 사용되면,
rand()
는
srand
(
1
)
로 시드가 설정된 것처럼 동작합니다.
매번
rand()
가 동일한
seed
로 시드되면, 동일한 값들의 시퀀스를 생성해야 합니다.
srand()
는 스레드 안전성이 보장되지 않습니다.
목차 |
매개변수
| seed | - | 시드 값 |
반환값
(없음)
참고 사항
일반적으로 말해서, 유사 난수 생성기는 프로그램 시작 시,
rand()
를 호출하기 전에 단 한 번만 시드되어야 합니다.
반복적으로 시드하거나 새로운 일괄의 유사 난수를 생성할 때마다 재시드해서는 안 됩니다.
표준 관행은
time
(
0
)
호출 결과를 시드로 사용하는 것입니다.
그러나
time()
는
time_t
값을 반환하며,
time_t
는 정수형으로 보장되지 않습니다.
실제로는 모든 주요 구현에서
time_t
를 정수형으로 정의하며, 이는 POSIX에서도 요구하는 사항입니다.
예제
가능한 출력:
Random value on [0 2147483647]: 1373858591
참고문헌
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.22.2.2 srand 함수 (p: 252-253)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.22.2.2 srand 함수 (p: 346-347)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.20.2.2 srand 함수 (p: 312-313)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.10.2.2 srand 함수
참고 항목
|
의사 난수를 생성함
(함수) |
|
|
rand
(
)
함수가 생성할 수 있는 최대값
(매크로 상수) |
|
|
C++ documentation
for
srand
|
|