Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
src_corelib_global_qrandom.cpp
Go to the documentation of this file.
1// Copyright (C) 2018 Intel Corporation.
2// Copyright (C) 2018 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
4
5#include <QRandomGenerator>
6#include <QList>
7
9{
10 //! [0]
11 quint32 value = QRandomGenerator::global()->generate();
12 //! [0]
13
14 //! [1]
15 QRandomGenerator prng1(1234), prng2(1234);
16 Q_ASSERT(prng1.generate() == prng2.generate());
17 Q_ASSERT(prng1.generate64() == prng2.generate64());
18 //! [1]
19
20 //! [2]
21 int x = QRandomGenerator::global()->generate();
22 int y = QRandomGenerator::global()->generate();
23 int w = QRandomGenerator::global()->bounded(16384);
24 int h = QRandomGenerator::global()->bounded(16384);
25 //! [2]
26
27 //! [3]
28 std::uniform_real_distribution<> dist(1, 2.5);
29 return dist(*QRandomGenerator::global());
30 //! [3]
31}
33{
34 public:
35 qreal snippets_4_to_11(int z, quint32 *begin, quint32 *end, const quint32 *seedBuffer, size_t len);
36};
37
38qreal Generator::snippets_4_to_11(int z, quint32 *begin, quint32 *end, const quint32 *seedBuffer, size_t len)
39{
40 {
41 //! [4]
42 std::seed_seq sseq(seedBuffer, seedBuffer + len);
43 QRandomGenerator generator(sseq);
44 //! [4]
45 }
46
47 //! [5]
48 std::seed_seq sseq(begin, end);
49 QRandomGenerator generator(sseq);
50 //! [5]
51
52 //! [6]
53 while (z--)
54 generator.generate();
55 //! [6]
56
57 //! [7]
58 std::generate(begin, end, [this]() { return generate(); });
59 //! [7]
60
61 //! [8]
62 std::generate(begin, end, []() { return QRandomGenerator::global()->generate64(); });
63 //! [8]
64
65 //! [9]
66 QList<quint32> list;
67 list.resize(16);
68 QRandomGenerator::global()->fillRange(list.data(), list.size());
69 //! [9]
70
71 //! [10]
72 quint32 array[2];
73 QRandomGenerator::global()->fillRange(array);
74 //! [10]
75
76 //! [11]
77 QRandomGenerator64 rd;
78 return std::generate_canonical<qreal, std::numeric_limits<qreal>::digits>(rd);
79 //! [11]
80}
81
83{
84 return 0.0;
85}
86
87double generateDoubleWithHighest(double highest)
88{
89 //! [12]
90 return generateDouble() * highest;
91 //! [12]
92}
93
94#include <QColor>
95
97{
98 {
99 //! [13]
100 quint32 v = QRandomGenerator::global()->bounded(256);
101 //! [13]
102 }
103
104 //! [14]
105 quint32 v = QRandomGenerator::global()->bounded(1000, 2000);
106 //! [14]
107
108 //! [15]
109 return QColor::fromRgb(QRandomGenerator::global()->generate());
110 //! [15]
111}
112
114{
115 //! [16]
116 qint64 value = QRandomGenerator64::global()->generate() & std::numeric_limits<qint64>::max();
117 //! [16]
118}
qreal snippets_4_to_11(int z, quint32 *begin, quint32 *end, const quint32 *seedBuffer, size_t len)
double snippets_1_2_3()
QColor snippets_13_to_15()
double generateDouble()
double generateDoubleWithHighest(double highest)