C언어

srand() 함수란?

_minit 2024. 11. 15. 10:56

srand() 함수는 C언어에서 난수 생성의 시드를 초기화하기 위해 사용되는 함수이다. 이 함수는 표준 라이브러리 <stdlib.h>에 정의되어 있으며, rand() 함수를 사용할 때 더 나은 난수 분포를 위해 종종 함께 사용된다.

 

사용법

#include <stdlib.h>

int main(void) {
	int seed = ??; // 시드 값
	srand(seed);
}

 

 

왜 사용할까?

C언어에서 난수를 생성할 때는 rand() 함수를 사용한다. 하지만 rand() 함수는 동일한 시드 값에서 호출될 때 항상 동일한 수열을 반환하게 된다. 프로그램을 매번 실행할 때마다 다른 난수를 얻고 싶다면, 초기 시드 값이 달라야 한다. 여기서 srand() 함수가 필요한 것이다. srand() 를 통해 시드를 설정함으로써, 프로그램이 매번 다른 난수 수열을 생성하게 할 수 있다.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL)); // 현재 시간을 시드로 사용하여 난수 생성 초기화
    int randomValue = rand();
    printf("Generated Random Value: %d\n", randomValue);
    return 0;
}

 

위 코드에서 srand(time(NULL))는 현재 시간을 시드로 사용한다. 이를 통해 프로그램이 실행될 때마다 서로 다른 난수 수열을 생성하도록 한다.

 

 

예제

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));
    for (int i = 0; i < 5; i++) {
        printf("%d\n", rand());
    }
    return 0;
}

 

 

728x90

'C언어' 카테고리의 다른 글

[C언어] 개행 문자  (0) 2024.12.13
[C언어] qsort() 함수란?  (0) 2024.11.18
[C언어] OOP 공부 (2)  (1) 2024.11.13
티스토리 기본모드 수식 삽입  (2) 2024.11.13
[C언어] OOP 공부 (1)  (0) 2024.11.12