标准库中包含一个可移植的实现伪随机数发生器的函数rand以及一个初始化种子数的函数srand。
unsigned long int next = 1; /*rand函数:返回0~32767之间的伪随机数*/ int rand(void) { next = next * 1103515245 + 12345; return (unsigned int)(next/65535)%32768; } /*srand函数:为rand()函数设置种子数*/ void srand(unsigned int seed) { next = seed; }
函数rand()生成介于0和RAND_MAX之间的伪随机整数序列。其中RAND_MAX是在<stdlib.h>中定义的符号常量。下面是一种生成大于等于0但小于1的随机浮点数的方法:
#define frand() ((double)rand())/(RAND_MAX + 1.0)