srand
헤더 파일
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - stdlib.h
void srand(unsigned int seed); 랜덤 값을 계산할 때 사용하는 seed 값 설정
입력 매개 변수 리스트
seed 랜덤 값을 계산할 때 사용할 seed 값
반환 값
없음
seed 값은 rand 함수에서 랜덤 값을 계산할 때 사용하며 매 번 바뀝니다.
하지만 초기 seed 값을 설정하지 않으면 랜덤 값을 생성하는 순서가 매 번 같아집니다.
이러한 이유로 초기에 seed 값을 매 번 다르게 설정할 수 있게 프로그래밍 합니다.
이 때 다른 값을 설정하기 위해 일반적으로 시간을 이용합니다.
사용 예
//C언어 표준 라이브러리 함수 사용법 가이드
//void srand(unsigned int seed); 랜덤 값을 계산할 때 사용하는 seed 값 설정
//서로 중복없이 1~45 사이에 랜덤 값 6개를 만들기
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define MAX_VALUE 45
#define MAX_TRY 6
int main(void)
{
int check[MAX_VALUE] = { 0 };
int cnt;
int value;
printf("RAND_MAX is %d \n", RAND_MAX);
srand((unsigned)time(NULL));//랜덤 seed 값 설정
for (cnt = 0; cnt<MAX_TRY; cnt++)//MAX_TRY 번 반복
{
while (1)
{
value = rand() % MAX_VALUE; //0~MAX_VALUE 사이의 랜덤 값 발생
if (check[value] == 0)//발생한 적이 없으면
{
check[value] = 1;//발생하였음을 마킹
printf("%d ", value + 1);//발생한 값 +1 출력
break;//while 반복문 탈출
}
}
}
printf("\n");
return 0;
}
출력 결과는 매 번 실행마다 다릅니다.
출력
RAND_MAX is 32767
32 3 33 45 25 37
사용한 함수
'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글
abort 함수[C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
---|---|
realloc 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
malloc 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
free 함수 [C언어 표준 라이브러리 함수 사용법 가이드] (0) | 2016.01.03 |
calloc 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
rand 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtoull 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtoul 함수[C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtoll 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtol 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |