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.
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..
The documentation for this class was generated from the following file: