srandom()

Set the seed for a pseudo-random number generator

Synopsis:

#include <stdlib.h>

void srandom( unsigned int seed );

Since:

BlackBerry 10.0.0

Arguments:

seed
The seed of the sequence of pseudo-random integers.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

This function is in libc.a, but not in libc.so (in order to save space).

Description:

The srandom() function initializes the current state array using the value of seed.

Use this function in conjunction with the following:

initstate()
Initialize the state of the pseudo-random number generator.
random()
Generate a pseudo-random number using a default state.
setstate()
Specify the state of the pseudo-random number generator.

The random() and srandom() functions have (almost) the same calling sequence and initialization properties as rand() and srand() Unlike srand(), srandom() doesn't return the old seed because the amount of state information used is much more than a single word. The initstate() and setstate() routines are provided to deal with restarting/changing random number generators. With 256 bytes of state information, the period of the random-number generator is greater than 269.

Like rand(), random() produces by default a sequence of numbers that can be duplicated by calling srandom() with 1 as the seed.

After initialization, a state array can be restarted at a different point in one of two ways:

  • The initstate() function can be used, with the desired seed, state array, and size of the array.
  • The setstate() function, with the desired state, can be used, followed by srandom() with the desired seed. The advantage of using both of these functions is that the size of the state array does not have to be saved once it is initialized.

Classification:

POSIX 1003.1 XSI

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread No

Last modified: 2014-06-24



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus