C언어

난수발생 코드

h-bar 2010. 8. 29. 14:30

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
 int i;
 srand(time(NULL));
 for(i=1;i<=5;i++){                 //5개의 난수가 생성된다.
  printf("%d\n",rand()%10);  //0부터 9까지의 숫자난수를 출력한다.
 }
 return 0;
}


여기서
rand()함수가 난수를 발생시키는 함수입니다. rand()의 값은 0부터 32767(=2^15-1)의 정수로 출력된다.
그런데 rand()함수는 난수를 발생시키기 위한 초기값(?) 같은 숫자 시드를 설정할 필요하다.
안그러면 계속 같은 값만을 출력시킬 것이다.

그 시드를 설정하는 것이 srand()함수이다.
이때 임의의 값을 가지는 숫자로 적당한 것이 그 프로그램이 실행되는 시각인데 이는 time()함수로 얻을 수 있다.

rand() , srand() 함수는 <stdlib.h> 에 있고,
time() 함수는 <time.h> 에있다.