#include #include #include static unsigned long Q[4096], c = 362436; /* choose random initial c<809430660 and */ /* 4096 random 32-bit integers for Q[] */ unsigned long mwc(void) { unsigned long long t, a = 18782LL; static unsigned long i = 4095; unsigned long x, r = 0xfffffffe; i= (i+1)&4095; t = a * Q[i] + c; c=(t >> 32); x = t + c; if(x < c) { x++; c++; } return (Q[i] = r - x); } int main(void) { printf("\nRandom Number generated : %lld\n", mwc()); return 0; }