C++ Random - 범위 랜덤 수 구하기

Notepad96

·

2020. 11. 24. 05:35

300x250

 

 

 

 


1. random

 

랜덤한 임의의 수를 구하기 위해서는 random_device를 사용할 수 있다.

 

 

이를 사용하기 위해서는 random 헤더를 include 해주어야 한다.

 

 

 

 

random_device는 구할 수 있는 수의 최소값과 최대값을 minmax 함수를 사용하여 읽을 수 있다.

 

 

 

특정 범위를 지정하여 랜덤한 수를 구하고 싶다면 추가적인 연산이 필요하다.

 

 

 

 

 

 


2. 코 드

환경 : Visual studio 2019

#include <iostream>
#include <random>
using namespace std;

int main() {
	random_device rd;

	cout << "================랜덤 수 구하기================\n";
	cout << "랜덤 수 범위 \n";
	cout << rd.min() << " <=  rd  <= ";
	cout << rd.max() << "\n";
	cout << "랜덤 수 : " << rd() << "\n";


	cout << "\n================1 ~ 10 랜덤 수 50개================\n";
	for (int i = 0; i < 5; i++) {
		for (int k = 0; k < 10; k++) {
			int num = rd() % 10;		// 0 ~ 9 의 수를 갖는다.
			num += 1;					// 1 ~ 10 의 수를 갖는다.
			
			//int num = rd() % 10 + 1	// 한줄로 간단히 작성
			cout << num << " ";
		}
		cout << "\n";
	}

	return 0;
}

 

결 과

 

 

- 랜덤 수를 구하기 위하여 random_device를 생성하였다.

 

minmax 함수를 사용하여 랜덤 수의 범위를 구할 수 있다.

 

 

재정의 되어 있는 '()' 연산자를 호출함으로써 랜덤한 수를 반환해 준다.

 

 

 

 

 

- 임의의 범위 안 랜덤한 수를 구하기 위해서는 나머지 연산과, 덧셈 연산을 사용하면 된다.

 

 

예를 들어 방금 구했던 것처럼 랜덤한 수를 구한 후 이를 '% 10'으로 나머지를 구하면 이는 0~9 사이의 수가 된다.

 

 

그리고 이러한 결과의 '+1'을 더해준다면 1~10 사이의 수가 되는 것이다.

 

 

 

이런식으로 원하는 범위 속 랜덤한 수를 구할 수 있다.

 

 

 

 

 


3. 참 조

 

 

random_device::operator() - C++ Reference

12345678910111213141516 // random_device example #include #include int main () { std::random_device rd; std::cout << "default random_device characteristics:" << std::endl; std::cout << "minimum: " << rd.min() << std::endl; std::cout << "maximum: " << rd.ma

www.cplusplus.com

 

300x250