21xrx.com
2024-12-22 21:51:58 Sunday
登录
文章检索 我的文章 写文章
C++如何生成随机小数
2023-07-07 18:41:02 深夜i     --     --
C++ 生成 随机 小数 随机小数

在C++编程中,生成随机小数可能是一项常见的需求。本篇文章将介绍C++中如何生成随机小数。

C++中生成随机小数需要使用到C++的标准库random库中的uniform_real_distribution(均匀实数分布)函数。该函数会根据传入的参数生成一个指定范围的随机小数。

首先,我们需要添加头文件#include 。然后,我们需要使用std::random_device来获取随机数引擎(engine)的种子。种子可以作为随机数引擎的输入,以确保生成的随机数是真正的随机数。

下面是使用std::random_device获取种子的代码:


std::random_device rd;

接下来,我们需要使用获取的种子创建随机数引擎。使用std::mt19937随机数引擎可以生成符合均匀分布、无序的32位整数序列。需要注意的是,引擎创建后就会固定不变,即每次调用该引擎生成随机数时,使用的是相同的引擎。

下面是创建随机数引擎的代码:


std::mt19937 gen(rd());

接着,我们需要定义均匀实数分布的范围。需要在定义均匀实数分布时传入最小值和最大值。这里我们设定最小值为0,最大值为1。

下面是定义均匀实数分布范围的代码:


std::uniform_real_distribution<> dis(0, 1);

最后,我们就可以使用上述步骤生成随机小数了。使用dis(gen)即可生成一个0到1之间的随机小数。

下面是完整的示例代码:


#include <iostream>

#include <random>

int main()

{

  std::random_device rd;

  std::mt19937 gen(rd());

  std::uniform_real_distribution<> dis(0, 1);

  for(int i = 0; i < 10; i++)

  {

    std::cout << dis(gen) << std::endl;

  }

  return 0;

}

运行结果:


0.328961

0.306849

0.592324

0.543122

0.67589

0.941235

0.649934

0.0261776

0.654168

0.789413

总结:

本文介绍了使用C++的random库中的uniform_real_distribution函数生成随机小数的方法,可以根据需要定义随机数引擎和均匀实数分布的范围,然后通过调用函数生成随机小数。

  
  

评论区

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