rand.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 65 行

C
65
字号
#define _RESEARCH_SOURCE#include <stdlib.h>#include <libv.h>/*	random number generator from cacm 31 10, oct 88	for 32 bit integers (called long here)*/#ifdef	MAIN#define	A	16807#define	M	2147483647#define	Q	127773#define	R	2836#else#define	A	48271#define	M	2147483647#define	Q	44488#define	R	3399#endifstatic long seed = 1;voidsrand(unsigned int newseed){	seed = newseed;}longlrand(void){	long lo, hi, test;	hi = seed/Q;	lo = seed%Q;	test = A*lo - R*hi;	if(test > 0)		seed = test;	else		seed = test+M;	return(seed);}intrand(void){	return lrand()%(RAND_MAX+1);}#ifdef	MAINmain(){	int i;	for(i = 0; i < 10000; i++)		rand();	if(seed == 1043618065)		printf("     rand: pass\n");	else		printf("*****rand: fail; seed=%u, should be 1043618065\n", seed);	exit(0);}#endif

⌨️ 快捷键说明

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