A random number generator. More...
#include <juce_Random.h>
Public Member Functions | |
Random () | |
Creates a Random object using a random seed value. More... | |
Random (int64 seedValue) noexcept | |
Creates a Random object based on a seed value. More... | |
void | combineSeed (int64 seedValue) noexcept |
Merges this object's seed with another value. More... | |
void | fillBitsRandomly (BigInteger &arrayToChange, int startBit, int numBits) |
Sets a range of bits in a BigInteger to random values. More... | |
void | fillBitsRandomly (void *bufferToFill, size_t sizeInBytes) |
Fills a block of memory with random values. More... | |
int64 | getSeed () const noexcept |
Returns the RNG's current seed. More... | |
bool | nextBool () noexcept |
Returns the next random boolean value. More... | |
double | nextDouble () noexcept |
Returns the next random floating-point number. More... | |
float | nextFloat () noexcept |
Returns the next random floating-point number. More... | |
int | nextInt () noexcept |
Returns the next random 32 bit integer. More... | |
int | nextInt (int maxValue) noexcept |
Returns the next random number, limited to a given range. More... | |
int | nextInt (Range< int > range) noexcept |
Returns the next random number, limited to a given range. More... | |
int64 | nextInt64 () noexcept |
Returns the next 64-bit random number. More... | |
BigInteger | nextLargeNumber (const BigInteger &maximumValue) |
Returns a BigInteger containing a random number. More... | |
void | setSeed (int64 newSeed) noexcept |
Resets this Random object to a given seed value. More... | |
void | setSeedRandomly () |
Reseeds this generator using a value generated from various semi-random system properties like the current time, etc. More... | |
Static Public Member Functions | |
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. More... | |
Private Attributes | |
int64 | seed |
A random number generator.
You can create a Random object and use it to generate a sequence of random numbers.
@tags{Core}
|
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.
juce::Random::Random | ( | ) |
Creates a Random object using a random seed value.
Internally, this calls setSeedRandomly() to randomise the seed.
|
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.
void juce::Random::fillBitsRandomly | ( | BigInteger & | arrayToChange, |
int | startBit, | ||
int | numBits | ||
) |
Sets a range of bits in a BigInteger to random values.
void juce::Random::fillBitsRandomly | ( | void * | bufferToFill, |
size_t | sizeInBytes | ||
) |
Fills a block of memory with random values.
|
inlinenoexcept |
Returns the RNG's current seed.
|
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.
It's not thread-safe though, so threads should use their own Random object, otherwise you run the risk of your random numbers becoming.. erm.. randomly corrupted..
Referenced by juce::ObjCClass< NSObject >::getRandomisedName().
|
noexcept |
Returns the next random boolean value.
|
noexcept |
Returns the next random floating-point number.
|
noexcept |
Returns the next random floating-point number.
|
noexcept |
Returns the next random 32 bit integer.
Returns the next random number, limited to a given range.
The maxValue parameter may not be negative, or zero.
Returns the next random number, limited to a given range.
|
noexcept |
Returns the next 64-bit random number.
Referenced by juce::JuceWindowIdentifier::getImprobableWindowNumber().
BigInteger juce::Random::nextLargeNumber | ( | const BigInteger & | maximumValue | ) |
Returns a BigInteger containing a random number.
|
noexcept |
Resets this Random object to a given seed value.
void juce::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.
|
private |