본문 바로가기

Develop

C 랜덤 숫자

C에서 일반적으로 랜덤한 숫자(또는 수열)는 아래와 같이 얻는다.

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

int main(void)
{
  srand(time(0));
  printf("%d\n", rand());
}

 

하지만, 이 코드를 짧은 간격으로 계속 실행해보면 출력값이 비슷하다는 것을 알게 된다. 비록 rand()의 두번째 호출부터는 리턴되는 값이 매우 달라지지만, 첫 숫자가 비슷하다는 것만으로도 랜덤의 의미가 다소 사라진다. 이에 대응하는 가장 쉬운 방법은, rand()를 한 번 미리 호출함으로써 첫 숫자를 건너뛰는 것이다.

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

int main(void)
{
  srand(time(0));
  rand();
  printf("%d\n", rand());
}