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 + -
显示快捷键?