![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbER2yx%2FbtqOoMmGbwh%2FvEA7KOQmpWjDKoj357XEs0%2Fimg.png)
C++ Random - 범위 랜덤 수 구하기
Notepad96
·2020. 11. 24. 05:35
1. random
랜덤한 임의의 수를 구하기 위해서는 random_device를 사용할 수 있다.
이를 사용하기 위해서는 random 헤더를 include 해주어야 한다.
random_device는 구할 수 있는 수의 최소값과 최대값을 min과 max 함수를 사용하여 읽을 수 있다.
특정 범위를 지정하여 랜덤한 수를 구하고 싶다면 추가적인 연산이 필요하다.
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를 생성하였다.
min과 max 함수를 사용하여 랜덤 수의 범위를 구할 수 있다.
재정의 되어 있는 '()' 연산자를 호출함으로써 랜덤한 수를 반환해 준다.
- 임의의 범위 안 랜덤한 수를 구하기 위해서는 나머지 연산과, 덧셈 연산을 사용하면 된다.
예를 들어 방금 구했던 것처럼 랜덤한 수를 구한 후 이를 '% 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
'C++ > STL' 카테고리의 다른 글
C++ String to int, int to String - 문자열 숫자 형변환 (0) | 2020.11.20 |
---|---|
C++ ratio 분수 계산 - 분자, 분모 저장 (0) | 2020.11.20 |
C++ isupper, islower, isdigit - 문자 대소문자, 숫자 판별 (0) | 2020.11.20 |
C++ min, max 함수 (0) | 2020.11.19 |
C++ time, clock 시간 측정, 현재 시간 구하기 (0) | 2020.11.18 |