C标准库中srand()和rand()关于随机数的记录

发布时间 2023-06-02 22:46:17作者: 顺心无忧

首先需要说明,C标准库可以在C++中使用。srand()和rand()均来源于<cstdlib>中。因为这两个函数只能生成相对随机的伪随机数(有规律的随机数),这种不能直接实现“绝对随机”的函数一开始会给大家带来一些疑惑。下面记录了一些关于srand()和rand()的使用方法,以及如何实现伪随机数的“绝对随机”。

一、srand()和rand()函数

1、srand()

void srand(unsigned seed);

srand(seed)函数是rand()函数的种子,用于初始化rand()函数的初始值。

2、rand()

int rand(void); // 指定从seed开始,返回一个[seed, RAND_MAX(0x7fff)]的随机整数

情况1

调用rand()函数时,若没有在之前调用srand(seed)函数,系统会自动将seed默认为1,执行srand(1)函数,从而返回一个[1, RAND_MAX(0x7fff)]的随机整数。

情况2

调用rand()函数时,若在之前调用了srand(seed)函数,则会返回一个[seed, RAND_MAX(0x7fff)]的随机整数。

二、例子

在[0, 6)这个区间随机取得一个整数。

1、未使用srand(unsigned seed)函数指定seed值

2、使用了srand(unsigned seed)函数指定seed值

3、