한국어
Qt
 

QRandomGenerator 클래스를 사용하면 난수 생성기에서 간단하게 난수 값을 얻을 수 있다. 

 

이 클래스는 Qt 5.10에서 도입되었고 다음처럼 헤더를 포함해주면 사용할 수 있다.

#include <QRandomGenerator>

 

C++ 랜덤 엔진과 마찬가지로 QRandomGenerator 는 생성자를 통해 사용자가 제공 한 시드값으로 생성 할 수 있다. 시드를 사용하면 이 클래스에서 생성된 숫자가 결정적이다.

즉, 동일한 시드 데이터를 감안할 때 QRandomGenerator는 동일한 숫자를 생성한다. 그러나 다른 시드를 사용하면 결과는 상당히 달라진다.

 

QRandomGenerator::system() 함수를 사용하면 시스템의 암호화된 랜덤 생성기에 안전하게 액세스할 수 있다. 유닉스 시스템에서는 /dev/urandom 또는 getrandom() 또는 getentropy() 시스템 호출로 읽는 것과 같다.

 

새 값을 생성하는 가장 일반적인 방법은 generate() 함수를 호출하거나 generate64() 또는 fillRange() 함수를 호출하는 것이다. 이를 다음과 같이 사용할 수 있다.

auto random = QRandomGenerator::global()->generate();

 

명시적으로 64비트 또는 32비트 난수를 생성하려면 다음 함수들을 사용할 수 있다.

quint64 QRandomGenerator::generate64()

quint32 QRandomGenerator::generate()

 

최저 값과 최고 값 사이의 범위에서 하나의 무작위 32비트 난수를 생성하려면 다음 함수를 사용한다. 가장 높은 매개변수는 가장 낮은 매개변수보다 커야 한다.

quint32 v = QRandomGenerator::global()->bounded(1000, 2000);

 

다음은 32비트 또는 64비트 난수 (UInt 유형에 따라 다름)를 생성하고 가리키는 버퍼에 저장하는 방법이다.

QVector<quint32> vector;
vector.resize(16);
QRandomGenerator::global()->fillRange(vector.data(), vector.size());

 

정규 범위 [0, 1) (즉, 0 포함 및 1 제외)에서 임의의 qreal 하나를 생성하고자 한다면 다음과 같이 한다.

auto random = QRandomGenerator::global()->generateDouble();

 

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 85858
19 QThread 소개 및 예제 makersweb 2019.12.25 19443
18 Qt애플리케이션 객체(QCoreApplication, QGuiApplication, QApplication) 에 대해서 makersweb 2019.11.11 10090
17 QLabel의 텍스트 색과 배경색을 변경 makersweb 2020.02.25 6607
16 QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 6384
15 QQuickImageProvider 를 이용한 Qml 에서 이미지 표시 makersweb 2015.10.18 5995
14 컨테이너 클래스 - QVector makersweb 2020.03.17 2835
13 main함수 명령줄 옵션 해석 makersweb 2020.09.01 2230
12 Qt로 데이터를 직렬화(serialization)하는 방법 makersweb 2020.08.04 2052
» QRandomGenerator 클래스를 사용하여 난수(random values) 생성 makersweb 2020.10.17 1570
10 QThread 및 QMutex 예제 makersweb 2021.01.12 1346
9 재진입(Reentrancy) 및 스레드 안전성(Thread-Safety) makersweb 2020.04.19 1216
8 Qt 스마트 포인터 (QSharedPointer, QScopedPointer, QPointer) makersweb 2022.08.18 1127
7 QScopedPointer 소개 및 사용법 makersweb 2019.11.29 1024
6 QProcess 예제 (프로그램 재시작) file makersweb 2023.01.25 876
5 응용프로그램 자동실행 설정 (on Windows) makersweb 2021.05.08 563
4 QML의 사용자 정의 Image makersweb 2023.09.17 537
3 하드디스크 드라이브 여유 공간 계산 file makersweb 2023.01.15 492
2 Base64로 인코딩된 파일을 복원 makersweb 2023.08.06 428
1 HTTPS URL을 연결할 때 SslHandshakeFailedError 오류 makersweb 2022.07.31 355