📅  最后修改于: 2023-12-03 14:39:54.530000             🧑  作者: Mango
在 C++ 中,rand()
是一个用来生成随机数的函数。它是 C 标准库中的一部分,也是 C++ 标准库中的一部分。
在 C++ 中使用 rand()
时,需要在头文件 cstdlib
中包含该函数。下面是一个简单的示例,用于生成一个 1 到 10 之间的随机整数:
#include <cstdlib>
#include <iostream>
int main()
{
int random_variable = rand() % 10 + 1;
std::cout << "Random value: " << random_variable << std::endl;
return 0;
}
其中,rand() % 10 + 1
用于生成 1 到 10 之间的随机整数。如果要生成其他范围之内的随机整数,只需要修改 10
和 1
的值即可。例如,如果要生成 5 到 20 之间的随机整数,可以这样写:
int random_variable = rand() % 16 + 5;
除了生成整数,rand()
还可以用于生成随机浮点数。下面是一个例子:
double random_variable = (double)rand() / RAND_MAX;
std::cout << "Random value: " << random_variable << std::endl;
该例子中,将 rand()
的返回值除以 RAND_MAX
,得到的结果是 0 到 1 之间的随机浮点数。
在使用 rand()
之前,有必要先设置随机数种子。否则,每次程序运行时,生成的随机数序列都是相同的。可以使用 time()
函数来设置随机数种子,以确保每次生成的随机数序列都是不同的。下面是一个示例:
#include <cstdlib>
#include <iostream>
#include <ctime>
int main()
{
std::srand(std::time(nullptr));
int random_variable = rand() % 10 + 1;
std::cout << "Random value: " << random_variable << std::endl;
return 0;
}
该示例中,srand()
函数使用参数 time(nullptr)
来设置随机数种子。time(nullptr)
返回的是当前时间的秒数,因此每次程序运行时,随机数种子都是不同的。
rand()
的返回值是 int
类型,因此如果需要生成较大的随机数,需要使用多次调用 rand()
来拼接生成。例如,要生成 0 到 100000 之间的随机数,可以这样写:int random_variable = rand() % 1000 * 100 + rand() % 100;
rand()
是 C++ 标准库中用来生成随机数的函数。使用前需要设置随机数种子,否则每次程序运行时生成的随机数序列都是相同的。随机数是伪随机数,不适用于需要高度保密的加密算法中。如果需要生成较大的随机数,需要使用多次调用 rand()
来拼接生成。