Nagie's DevStory

[C] 21. srand()와 rand()를 사용해 난수 생성하기 본문

Programming/C

[C] 21. srand()와 rand()를 사용해 난수 생성하기

Nagie 2023. 9. 6. 23:46
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