21xrx.com
2024-09-20 00:59:34 Friday
登录
文章检索 我的文章 写文章
C++如何生成随机浮点数?
2023-07-09 22:52:39 深夜i     --     --
C++ 随机数生成 浮点数

在C++中生成随机浮点数需要使用C++标准库提供的随机数发生器。C++标准库提供了多种不同的随机数发生器,其中比较常见的是生成器rand()和C++11引入的mt19937。

要使用rand()生成随机浮点数,可以使用下面的代码:


#include <cstdlib>

#include <ctime>

int main()

{

  float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);

  return 0;

}

需要注意的是,要使用rand()生成的随机数需要先调用srand()函数设置随机数种子,这样可以保证每次运行程序都会生成一组不同的随机数。下面的代码展示了如何设置随机数种子:


srand(time(NULL));

C++11中的mt19937引入了更高质量的随机数发生器,可以生成更均匀、更分散的随机数。使用mt19937生成随机浮点数的代码如下:


#include <random>

int main()

{

  std::random_device rd;

  std::mt19937 mt(rd());

  std::uniform_real_distribution<float> dist(0.0, 1.0);

  float r = dist(mt);

  return 0;

}

与rand()不同,mt19937不需要设置随机数种子,因为它会自动使用系统提供的随机种子。std::uniform_real_distribution 用于定义浮点数生成区间,这里设置了生成浮点数的范围为0到1之间。

总之,生成随机浮点数的方法有多种,C++标准库提供了简单易用的函数和类,可以快速生成随机浮点数。我们可以根据需要选择合适的随机数发生器和生成区间。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复