stdlib的rand()函数在每次程序运行时会给出相同的序列。这是因为rand()函数的随机数生成算法是伪随机数生成算法,它根据一个种子值生成随机数序列。如果不设置种子值,默认情况下种子值为1,所以每次程序运行时都会生成相同的随机数序列。
为了获得不同的随机数序列,我们可以使用srand()函数来设置种子值。srand()函数需要传入一个整数作为种子值,通常可以使用时间戳作为种子值,以确保每次程序运行时都会生成不同的随机数序列。
下面是一个示例代码,演示了如何使用rand()和srand()函数生成不同的随机数序列:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
// 设置种子值为当前时间的秒数
srand(time(0));
// 生成并输出10个随机数
for (int i = 0; i < 10; i++) {
int randomNum = rand();
std::cout << randomNum << std::endl;
}
return 0;
}
在上述示例代码中,我们使用了ctime库中的time()函数来获取当前时间的秒数,并将其作为种子值传给srand()函数。这样每次程序运行时,种子值都会不同,从而生成不同的随机数序列。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云