rand.c
K&R, p. 46
download
#include <stdio.h> // for scanf(), printf(), putchar()
unsigned long int next = 1; // global var used by rand()
int rand(void); // pseudo-random number generator
void srand(unsigned int seed); // set seed for rand()
int main()
{
int i;
unsigned int seed;
scanf("%u", &seed);
srand(seed);
for (i = 0; i < 5; i++)
{printf("%d\t", rand());}
putchar('\n');
return 0;
}
// return pseudo-random integer on 0..32767
int rand(void)
{
next = next * 1103515245 + 12345;
return (unsigned int)(next / 65536) % 32768;
}
void srand(unsigned int seed)
{
next = seed; // set seed for rand()
}
/*
gcc rand.c -o rand
./rand
0
0 21468 9988 22117 3498
./rand
1
16838 5758 10113 17515 31051
./rand
2
908 22817 10239 12914 25837
./rand
-1 // converted to UINT_MAX // limits.h
15929 4409 9862 26718 8713
./rand
4294967295 // UINT_MAX
15929 4409 9862 26718 8713
*/
Comments
Post a Comment