A random number generator.
More...
#include <juce_Random.h>
|
| Random (int64 seedValue) noexcept |
| Creates a Random object based on a seed value.
|
|
| Random () |
| Creates a Random object using a random seed value.
|
|
int | nextInt () noexcept |
| Returns the next random 32 bit integer.
|
|
int | nextInt (int maxValue) noexcept |
| Returns the next random number, limited to a given range.
|
|
int | nextInt (Range< int > range) noexcept |
| Returns the next random number, limited to a given range.
|
|
int64 | nextInt64 () noexcept |
| Returns the next 64-bit random number.
|
|
float | nextFloat () noexcept |
| Returns the next random floating-point number.
|
|
double | nextDouble () noexcept |
| Returns the next random floating-point number.
|
|
bool | nextBool () noexcept |
| Returns the next random boolean value.
|
|
BigInteger | nextLargeNumber (const BigInteger &maximumValue) |
| Returns a BigInteger containing a random number.
|
|
void | fillBitsRandomly (void *bufferToFill, size_t sizeInBytes) |
| Fills a block of memory with random values.
|
|
void | fillBitsRandomly (BigInteger &arrayToChange, int startBit, int numBits) |
| Sets a range of bits in a BigInteger to random values.
|
|
void | setSeed (int64 newSeed) noexcept |
| Resets this Random object to a given seed value.
|
|
int64 | getSeed () const noexcept |
| Returns the RNG's current seed.
|
|
void | combineSeed (int64 seedValue) noexcept |
| Merges this object's seed with another value.
|
|
void | setSeedRandomly () |
| Reseeds this generator using a value generated from various semi-random system properties like the current time, etc.
|
|
|
static Random & | getSystemRandom () noexcept |
| The overhead of creating a new Random object is fairly small, but if you want to avoid it, you can call this method to get a global shared Random object.
|
|
A random number generator.
You can create a Random object and use it to generate a sequence of random numbers.
◆ Random() [1/2]
Random::Random |
( |
int64 | seedValue | ) |
|
|
explicitnoexcept |
Creates a Random object based on a seed value.
For a given seed value, the subsequent numbers generated by this object will be predictable, so a good idea is to set this value based on the time, e.g.
new Random (Time::currentTimeMillis())
◆ Random() [2/2]
◆ nextInt() [1/3]
◆ nextInt() [2/3]
int Random::nextInt |
( |
int | maxValue | ) |
|
|
noexcept |
Returns the next random number, limited to a given range.
The maxValue parameter may not be negative, or zero.
- Returns
- a random integer between 0 (inclusive) and maxValue (exclusive).
◆ nextInt() [3/3]
int Random::nextInt |
( |
Range< int > | range | ) |
|
|
noexcept |
Returns the next random number, limited to a given range.
- Returns
- a random integer between the range start (inclusive) and its end (exclusive).
◆ nextInt64()
int64 Random::nextInt64 |
( |
| ) |
|
|
noexcept |
Returns the next 64-bit random number.
- Returns
- a random integer from the full range 0x8000000000000000 to 0x7fffffffffffffff
◆ nextFloat()
float Random::nextFloat |
( |
| ) |
|
|
noexcept |
Returns the next random floating-point number.
- Returns
- a random value in the range 0 (inclusive) to 1.0 (exclusive)
◆ nextDouble()
double Random::nextDouble |
( |
| ) |
|
|
noexcept |
Returns the next random floating-point number.
- Returns
- a random value in the range 0 (inclusive) to 1.0 (exclusive)
◆ nextBool()
bool Random::nextBool |
( |
| ) |
|
|
noexcept |
Returns the next random boolean value.
◆ nextLargeNumber()
Returns a BigInteger containing a random number.
- Returns
- a random value in the range 0 to (maximumValue - 1).
◆ fillBitsRandomly() [1/2]
void Random::fillBitsRandomly |
( |
void * | bufferToFill, |
|
|
size_t | sizeInBytes ) |
Fills a block of memory with random values.
◆ fillBitsRandomly() [2/2]
void Random::fillBitsRandomly |
( |
BigInteger & | arrayToChange, |
|
|
int | startBit, |
|
|
int | numBits ) |
Sets a range of bits in a BigInteger to random values.
◆ setSeed()
void Random::setSeed |
( |
int64 | newSeed | ) |
|
|
noexcept |
Resets this Random object to a given seed value.
◆ getSeed()
int64 Random::getSeed |
( |
| ) |
const |
|
noexcept |
Returns the RNG's current seed.
◆ combineSeed()
void Random::combineSeed |
( |
int64 | seedValue | ) |
|
|
noexcept |
Merges this object's seed with another value.
This sets the seed to be a value created by combining the current seed and this new value.
◆ setSeedRandomly()
void Random::setSeedRandomly |
( |
| ) |
|
Reseeds this generator using a value generated from various semi-random system properties like the current time, etc.
Because this function convolves the time with the last seed value, calling it repeatedly will increase the randomness of the final result.
◆ getSystemRandom()
static Random & Random::getSystemRandom |
( |
| ) |
|
|
staticnoexcept |
The overhead of creating a new Random object is fairly small, but if you want to avoid it, you can call this method to get a global shared Random object.
Note this will return a different object per thread it's accessed from, making it thread safe. However, it's therefore important not store a reference to this object that will later be accessed from other threads.
The documentation for this class was generated from the following file: