Nagie's DevStory
[C] 21. srand()와 rand()를 사용해 난수 생성하기 본문
728x90
srand(); 와 rand(); 는 C에서 난수 생성을 위해 사용된다.
srand(); 는 난수의 시드를 초기화하고 rand(); 는 srand(); 에 의해 생성된 시드를 기반으로 난수를 생성한다.
사용 예시는 아래와 같다.
#include <stdlib.h>
#include <time.h>
int main() {
// 현재 시간을 기반으로 시드(seed)를 설정
srand(time(NULL));
// rand를 사용해 난수 생성
int rNum = rand();
}
보편적으로 시간을 기준으로 시드를 생성하는데 이유는 그냥 사용하게 되면 똑같은 값만 계속 나오기 때문이다.
그리고 난수를 일정 범위 내의값으로 제한해 생성하고 싶다면 % 연산자를 사용해 적절한 범위로 만들 수 있다.
예를 들어 0 ~ 9 사이의 정수를 생성하고 싶다면 아래의 코드처럼 작성할 수 있다.
#include <stdlib.h>
#include <time.h>
int main() {
// 현재 시간을 기반으로 시드(seed)를 설정
srand(time(NULL));
// rand를 사용해 난수 생성
int rNum = rand() % 10;
}
srand()같은 경우는 프로그램의 최초 실행 때 한 번만 호출되면 된다.
다만 난수 시퀀스를 알 수 없게 만들고 싶다면 계속 호출시켜도 무관하다.
728x90
Comments