ran1.c

来自「适合大型数值计算代码 现在网络上已经找不到了 购买需要20$」· C语言 代码 · 共 49 行

C
49
字号
#define IA 16807#define IM 2147483647#define AM (1.0/IM)#define IQ 127773#define IR 2836#define NTAB 32#define NDIV (1+(IM-1)/NTAB)#define EPS 1.2e-7#define RNMX (1.0-EPS)float ran1(long *idum){	int j;	long k;	static long iy=0;	static long iv[NTAB];	float temp;	if (*idum <= 0 || !iy) {		if (-(*idum) < 1) *idum=1;		else *idum = -(*idum);		for (j=NTAB+7;j>=0;j--) {			k=(*idum)/IQ;			*idum=IA*(*idum-k*IQ)-IR*k;			if (*idum < 0) *idum += IM;			if (j < NTAB) iv[j] = *idum;		}		iy=iv[0];	}	k=(*idum)/IQ;	*idum=IA*(*idum-k*IQ)-IR*k;	if (*idum < 0) *idum += IM;	j=iy/NDIV;	iy=iv[j];	iv[j] = *idum;	if ((temp=AM*iy) > RNMX) return RNMX;	else return temp;}#undef IA#undef IM#undef AM#undef IQ#undef IR#undef NTAB#undef NDIV#undef EPS#undef RNMX

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?