본문으로 바로가기

C++에서 임의의 정수를 생성하는 법을 알아보자. 우선 임의의 숫자를 생성하기 위해 rand() 함수를 이용할 수 있다. 하지만 언제나 같은 시드 값을 가지기 때문에 rand() 함수만 사용하면 언제나 같은 값을 반환한다. 이떄, 시드의 값을 변환하기 위해 srand() 함수를 사용한다.

#include <ctime>

int main() {
  srand((int)time(NULL));
  return 0;
}

그리고 적절한 범위의 수를 생성하기 위해 모듈러 연산자(%)를 사용하며 아래와 같이 적절한 사칙 연산을 통해 생성하기 원하는 임의의 수의 범위를 정할 수 있다.

#include <cstdio>
#include <cstdlib>
#include <ctime>

const int M = 100;
const int N = 50;

int main() {
  srand((int)time(NULL));
  
  int x = rand() % M;// 0 <= x < M
  int y = rand() % M + 1;// 1 <= y < M+1
  int z = rand() % M + N;// N <= z < M+N
  
  printf("%d %d %d\n", x, y, z);
  
  return 0;
}

댓글을 달아 주세요