rand()函数是C++标准库中的一个伪随机数生成器,它返回一个在0到RAND_MAX之间的整数,其中RAND_MAX是一个常量,通常定义为32767。由于rand()函数生成的随机数序列是固定的,因此在使用rand()函数之前,通常需要调用srand()函数初始化随机数种子。
srand()函数接受一个无符号整数作为参数,用于初始化随机数种子。通常可以使用当前时间作为随机数种子,如下所示:
#include <cstdlib>
#include <ctime>
int main() {
srand(time(NULL)); // 使用当前时间作为随机数种子
int x = rand(); // 生成一个随机数
return 0;
}
上面的代码中,srand(time(NULL))调用了srand()函数初始化随机数种子。time(NULL)返回当前时间,因此每次运行程序时,随机数种子都不同。这样就可以生成不同的随机数序列。
如果要生成一个指定范围内的随机整数,可以使用取模运算符(%)将rand()函数的返回值对范围大小取模。例如,要生成一个0到99之间的随机整数,可以这样写:
int x = rand() % 100;
上面的代码中,rand() % 100调用了rand()函数生成一个随机整数,并对100取模,得到一个0到99之间的随机整数。
如果要生成一个指定范围内的随机浮点数,可以这样写:
double x = (double)rand() / RAND_MAX * (max - min) + min;
其中,min和max分别表示随机数的最小值和最大值。上面的代码中,(double)rand() / RAND_MAX * (max - min) + min调用了rand()函数生成一个随机整数,并将其转换为浮点数。然后除以RAND_MAX得到一个0到1之间的随机浮点数。最后乘以(max - min)并加上min得到一个在指定范围内的随机浮点数。
这就是rand()函数和srand()函数的详细用法。
rand()是C++标准库中的伪随机数生成器,返回0到RAND_MAX间的整数。使用srand()初始化随机数种子,通常用time(NULL)确保每次运行产生不同序列。通过取模运算可生成指定范围内的整数,而生成浮点数则需要转换比例。
2万+

被折叠的 条评论
为什么被折叠?



