본문 바로가기
카테고리 없음

랜덤함수(rand, srand, time) 사용법 & 예제 (난수 생성)

by kangs' tong 2023. 8. 20.

랜덤함수(rand, srand, time)란?

랜덤함수(rand, srand, time)은 프로그래밍에서 난수(랜덤한 수)를 생성하기 위해 사용되는 함수들이다. 이 함수들은 보통 C/C++ 언어에서 주로 사용되며, 우리가 원하는 범위 내에서 임의의 숫자를 생성할 수 있다. 랜덤함수를 사용하여 데이터의 무작위성을 모델링하거나, 테스트 데이터를 생성하거나, 게임 등의 애플리케이션에서 사용할 수 있다.

srand 함수

srand 함수는 난수 발생기의 시드(seed)를 설정하는 함수이다. 시드는 난수 발생을 위한 초기값으로, 같은 시드가 주어지면 항상 같은 난수 값을 발생시킨다. 보통 현재 시간을 시드로 사용하여 시간에 따라 다른 난수 값을 얻을 수 있다.

#include <cstdlib>
#include <ctime>

srand(time(NULL));

이 코드는 time(NULL)로 현재 시간을 얻어와 srand 함수로 시드로 설정하는 예시이다.

rand 함수

rand 함수는 0 이상의 임의의 숫자를 반환하는 함수이다. 하지만 기본적으로 난수 값의 범위는 매우 크기 때문에, 원하는 범위 내에서 난수를 생성하기 위해서는 적절한 연산이 필요하다.

int num = rand() % 범위 + 시작값;

rand() 함수를 사용하여 얻은 난수는 범위로 나눈 나머지를 구함으로써 원하는 범위 내의 난수를 얻을 수 있다. 시작값이 0이 아닌 경우, 난수에 시작값을 더해주면 된다.

예를 들어, 1부터 100 사이의 난수를 생성하고 싶다면 아래와 같이 코드를 작성할 수 있다.

int num = rand() % 100 + 1;

예제

아래는 1부터 6까지의 숫자 중에서 임의로 하나의 숫자를 선택하기 위해 rand 함수를 사용하는 예제이다.

#include <iostream>
#include <cstdlib>
#include <ctime>

int main() {
    srand(time(NULL)); // 시드 설정

    int num = rand() % 6 + 1; // 1부터 6까지의 숫자 중에서 난수 생성

    std::cout << "주사위를 굴려 " << num << "이(가) 나왔습니다." << std::endl;

    return 0;
}

위 예제에서는 srand(time(NULL))으로 시드를 설정하고, rand() % 6 + 1로 1부터 6까지의 숫자 중에서 난수를 생성한다. 생성된 난수는 num 변수에 저장되고, 출력문을 통해 결과를 출력한다.

마무리

랜덤함수를 사용하면 프로그램에서 다양한 용도로 활용할 수 있는 난수를 생성할 수 있다. srand 함수를 사용하여 시드를 설정하고, rand 함수를 사용하여 원하는 범위 내의 난수를 생성할 수 있다. 랜덤함수를 적절하게 활용하여 프로그램의 다양한 기능을 구현해보자.

댓글