이 글에서는 N개의 주사위 굴리기를 에뮬레이트하는 C++ 코드를 소개합니다. 핵심 원리는 간단합니다. 1부터 6 사이의 난수를 생성하면 그것이 곧 주사위를 한 번 굴린 결과가 되는 것입니다.
동작 원리
C++ 표준 라이브러리의 rand() 함수는 임의의 정수를 반환합니다. 여기에 나머지 연산자(%)를 활용하여 rand() % 6 + 1을 계산하면, 결과값은 항상 1~6 범위 안에 있게 됩니다. 이 값이 바로 하나의 주사위 눈이 됩니다. 사용자가 입력한 개수(N)만큼 반복하면 N개의 주사위를 동시에 굴린 것과 같은 효과를 얻을 수 있습니다.
알고리즘
시작
변수 n 선언
n 입력받기
i = 0 부터 n-1 까지 반복
rand() % 6 + 1 로 난수 생성
생성된 값 출력
반복 끝
종료예제 코드
#include <iostream>
using namespace std;
int main(int argc, char **argv) {
cout << "주사위 개수를 입력하세요: ";
int n;
cin >> n;
cout << "주사위 눈의 값: ";
for (int i = 0; i < n; i++)
cout << (rand() % 6) + 1 << " ";
}코드 설명
먼저 사용자로부터 굴릴 주사위의 개수를 입력받아 변수 n에 저장합니다. 이후 for 반복문을 통해 n번 반복하면서 매번 (rand() % 6) + 1 연산으로 1~6 사이의 난수를 만들어 화면에 출력합니다.
실행 결과
주사위 개수를 입력하세요: 7 주사위 눈의 값: 2 5 4 2 6 2 5
참고 사항
rand()는 프로그램을 실행할 때마다 같은 순서의 난수가 생성되는 의사 난수(pseudo-random number)입니다. 실행할 때마다 다른 결과를 얻으려면 <cstdlib> 헤더와 <ctime> 헤더를 포함한 뒤, 프로그램 시작 부분에서 srand(time(0));를 호출하여 시드(seed)를 현재 시간으로 설정해 주는 것이 좋습니다.