diff --git a/src/prng/rand.c b/src/prng/rand.c index e3ce6347..c000cd24 100644 --- a/src/prng/rand.c +++ b/src/prng/rand.c @@ -1,6 +1,7 @@ #include +#include -static unsigned seed; +static uint64_t seed; void srand(unsigned s) { @@ -9,5 +10,6 @@ void srand(unsigned s) int rand(void) { - return (seed = (seed+1) * 1103515245 + 12345 - 1)+1 & 0x7fffffff; + seed = 6364136223846793005ULL*seed + 1; + return seed>>33; }