C库函数获取随机数的原理

发布时间 2023-08-16 15:06:07作者: 牛man

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;
}

 参考链接

C语言rand()函数产生随机数详解_c语言rand函数_北冥有鱼丶丶的博客-CSDN博客