CONTENTS | INDEX | PREV | NEXT
rand
srand
NAME
rand - return pseudo random number
srand - set seed for pseudo random number
SYNOPSIS
#include <stdio.h>
#include <stdlib.h>
int n = rand(void);
(void) srand(seed)
unsigned int seed;
FUNCTION
rand() returns a random number as a positive integer ranging from
0 to RAND_MAX. RAND_MAX is defined in stdlib.h and is at least
32767. DICE implements it as 2147483647 == 0x7FFFFFFF
The initial seed used to generate the pseudo random sequence is 1,
but may be reinitialized to any number you desire using srand().
rand() is guarenteed to return the same sequence for the same
seed.
EXAMPLE
#include <stdio.h>
#include <stdlib.h>
main(ac, av)
char *av[];
{
short i;
short j;
if (ac == 2) {
int seed = strtol(av[1], NULL, 0);
srand(seed);
printf("using seed = %dn", seed);
} else {
puts("using seed = 1");
}
for (i = 0; i < 10; ++i) {
int n = rand();
printf("Random number: %08lx (%d)n", n, n);
}
for (i = 0; i < 31; ++i) {
int isone = 0;
long mask = 1 << i;
for (j = 0; j < 32767; ++j) {
if (rand() & mask)
++isone;
}
printf("bit %d %5d:%-5d (dev %d)n", i, 32767 - isone, isone, 16384 - isone);
}
return(0);
}
INPUTS
unsigned int seed; An unsigned integer used to seed the
pseudo random number generator via srand()
RESULTS
int n; returned by rand(), this number will be a positive integer.