You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
609 B
C

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
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;
}