Computer/C/C++

난수 발생

고양이는생선을좋아해 2013. 4. 27. 17:25

C에서 무작위로 난수를 생성하려면 rand와 srand함수가 필요하다.

a = rand();

printf("%d",a);

이것만 해줘도 난수는 발생하나 매번 실행할 때마다 같은 난수를 반환한다. 그때 사용하는 것이 srand 함수이다.

srand((unsigned)time(NULL));

a = rand();

printf("%d",a);

srand속에 인트값으로 기준을 넣어주는 것인데, time함수로 매번 다른 값을 넣어주기 때문에 다른 난수를 반환한다.

여기서 time()함수는 1970년 01월 01일 00시 00분 00초를 시작으로 하여 현재까지의 초수를 반환합니다.

unsigned는 time()함수가 반환하는 값을 좀더 넓게 수용하기 위함입니다.

time함수를 사용하기 위해서는  time.h 파일 선언이 필요하다.

rand함수의 범위는 0 부터 32767까지인데 이안에서 범위를 임의로 지정해주려면 %연산자를 이용하면 된다.

a = rand()%10 + 1; 

예 : 1 부터 10 까지 난수 발생

10은 최대값 1은 최소값