Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- static uint32_t rs [4];
- void seedrand (uint32_t seed)
- {
- rs [0] = seed;
- rs [1] = seed << 1;
- rs [2] = seed & rs [1];
- rs [3] = rs [1] & ~rs [2];
- printf ("Using %u, %u, %u, and %u as seeds.\n", rs [0], rs [1], rs [2], rs [3]);
- return;
- }
- uint32_t getrand (void)
- {
- uint32_t tmp;
- tmp = rs [0] ^ (rs [0] << 5);
- rs [0] = rs [1];
- rs [1] = rs [2];
- rs [2] = rs [3];
- return rs [3] = (rs [3] ^ (rs [3] >> 12)) ^ (tmp ^ (tmp >> 16));
- }
- int results [16];
- int main (void)
- {
- int i;
- printf ("Testing random number generator\n");
- seedrand (time (NULL));
- for (i = 0; i < 700000; i++)
- results [getrand () & 15] ++;
- for (i = 0; i < 16; i++)
- printf ("%i: %i\n", i, results [i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement