📅  最后修改于: 2023-12-03 15:14:01.784000             🧑  作者: Mango
在 C++ 中,可以使用库函数 rand()
来生成随机数,但是它生成的随机数是在 [0, RAND_MAX] 之间的整数,需要将它转换为浮点数并将范围映射到 [0, 1] 才能得到随机数 0 到 1。
下面是一个简单的例子,使用 rand()
函数生成随机数,并将其转换为浮点数并缩放到 [0, 1]。
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
// 使用当前时间作为种子
srand((unsigned) time(nullptr));
// 生成随机数并转换为浮点数
double random_num = static_cast<double>(rand()) / RAND_MAX;
std::cout << "Random number between 0 and 1: " << random_num << std::endl;
return 0;
}
在上述代码中,我们使用当前时间作为随机数生成器的种子,以确保每次运行程序时生成不同的随机数。
请注意,使用 RAND_MAX
这个预定义常量,可以保证在使用 rand()
函数生成随机数时不会超出其范围。
在 C++ 中,通过使用 rand()
函数和 srand()
函数可以生成随机数。要生成随机数 0 到 1,需要将生成的随机整数转换为浮点数,并将范围映射到 [0, 1]。