1.what
rand库函数是用来获取一个伪随机数。使用时需要添加头文件#include<stdlib.h>,然后调用该函数即可获取一个随机数。
2.why(原理)
rand产生随机数的原理:
3.how
problem
如果我们使用的时候,只调用了rand(),不改变种子,系统默认会设置种子的值为1即
srand(1),所以我们每次执行程序生成的随机数都是不变的。
如果我们要获取不同的随机数,则需要先设置不断变化的种子,需要设置srand((unsigned int)time(NULL)),通过每次获取系统的时间来获得一个
变化的种子。
#include<stdio.h> #include<stdlib.h> int main() { srand((unsigned int)getpid());/*getpid()获取进程的pid 作为种子,如果是同一个进程pid是相同的*/ //srand((unsigned int)time(NULL)*10);/*设置不同的种子,为了产生不同的随机数 time()获取系统得时间*/ //srand(1); /*默认得种子是1,获取的随机数是一样的*/ int ch = rand()%100+1;//获取随机数1-99 double f = (rand()%10)/10.0; //产生一个double类型随机数 printf("ch = %d, f= %.5lf\r\n",ch,f); return 0; }
参考链接
冲冲冲