📜  随机数 cpp - C++ (1)

📅  最后修改于: 2023-12-03 15:42:24.573000             🧑  作者: Mango

介绍随机数生成器

在编程中,随机数生成器是非常常见的一个工具,它可以用来生成在一定范围内的随机数。在 C++ 中,我们可以使用 <random> 库来实现随机数生成器。

使用步骤
  1. 包含 <random> 头文件

    首先我们需要在程序中包含 <random> 头文件,使用标准命名空间:

    #include <random>
    using namespace std;
    
  2. 创建随机数引擎

    随机数引擎是生成随机数的基础,我们需要先创建它。C++ 标准库提供了许多种随机数引擎,比如 mt19937minstd_randknuth_b 等等,选择哪种取决于你的需求。

    mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
    

    这里我们使用了 mt19937 引擎,种子为当前时间的纳秒数。

  3. 创建随机数分布

    接下来我们需要创建随机数分布,也就是指定随机数的范围和分布规律。C++ 标准库提供了几种常用的分布类型:均匀分布、正态分布、泊松分布等等,在实际应用中可以按照自己的需求选择其中一个。

    uniform_int_distribution<int> distr(1, 10);
    

    这里我们使用了均匀分布 uniform_int_distribution,指定了随机数的范围为 [1,10]

  4. 生成随机数

    最后我们就可以使用随机数引擎对应的分布来生成随机数了。

    int random_number = distr(rng);
    

    这里我们使用了之前创建的随机数引擎 rng 和随机数分布 distrdistr(rng) 的意思是用随机数引擎 rngdistr 分布生成一个随机数。

示例代码

完整的随机数生成器实现代码如下:

#include <iostream>
#include <random>
#include <chrono>
using namespace std;

int main()
{
    // 创建随机数引擎
    mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
    
    // 创建随机数分布
    uniform_int_distribution<int> distr(1, 10);
    
    // 生成随机数
    int random_number = distr(rng);
    
    // 输出结果
    cout << "Random Number: " << random_number << endl;
    
    return 0;
}

以上就是随机数生成器的使用方法,希望能对你编写程序有所帮助。