伪随机数

rand() 函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值我们称之为“种子”。
种子在每次启动计算机时是随机的,但是一旦计算机启动以后它就不再变化了;也就是说,每次启动计算机以后,种子就是定值了,所以根据公式推算出来的结果(也就是生成的随机数)就是固定的。

生成随机数,需要用到两个函数srand、rand,头文件为 #include <stdlib.h>

void srand ( unsigned int seed )
生成随机数种子,注意如果使用相同的种子后面的rand()函数会出现一样的随机数。

srand((unsigned)time(NULL));

int rand ( void )
根据 srand 初始的随机数种子产生一个伪随机数(注意不是真正的随机),范围为 0 - RAND_MAX。

int main()
{
    int a, i;
    // 使用for循环生成10个随机数
    srand((unsigned)time(NULL));
    for (i = 0; i < 10; i++)
    {
        // 如果把srand()放在循环内,由于for 循环运行速度非常快,在一秒之内就运行完成了,所以生成的随机数都相同。
        srand((unsigned)time(NULL));
        a = rand();
        printf("%d ", a);
    }
    return 1;
}

设置范围[min, max]

rand() % (MAX + 1 - MIN) + MIN; // 设置范围 MIN 到 MAX
posted @ 2023-05-03 11:49  jason8826  阅读(79)  评论(0)    收藏  举报