引用:https://zhidao.baidu.com/question/26625011.html
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<time.h>
double rnd1(double *r)
{ int m;
double s,u,v,p;
s=65536.0; u=2053.0; v=13849.0;
m=(int)(*r/s); *r=*r-m*s;
*r=u*(*r)+v; m=(int)(*r/s);
*r=*r-m*s; p=*r/s;
return(p);
}
int main()
{ int i;
double r;
r=5.0;
printf("\n");
for (i=0; i<=9; i++)
printf("%10.7lf\n",rnd1(&r));
printf("\n");
getch();
}