21xrx.com
2024-12-22 23:37:12 Sunday
登录
文章检索 我的文章 写文章
介绍C++11的random库
2023-06-27 02:53:47 深夜i     --     --
C++11 random库 伪随机数生成器 随机数分布函数 随机数引擎

C++11是C++语言的一次重大升级,新增了许多有用的功能。其中,random库就是C++11新增的一个重要功能,可以生成伪随机数序列。本文将简要介绍C++11的random库。

1. 随机数引擎

随机数引擎是random库中最重要的部分,它用于生成随机数序列。C++11提供了三种不同的随机数引擎,分别是:

- mt19937:Mersenne Twister随机数引擎,生成2535-1范围内的均匀分布随机数序列。

- default_random_engine:与系统有关的默认随机数引擎,使用参数为时间和进程ID的种子。

- minstd_rand0:一个线性同余随机数生成器。

2. 分布器

分布器用于将随机数序列转换为特定的分布类型。C++11提供的分布器包括:

- uniform_int_distribution:均匀分布的整数分布器。

- uniform_real_distribution:均匀分布的实数分布器。

- normal_distribution:正态分布的实数分布器。

- poisson_distribution:泊松分布的整数分布器。

3. 代码示例

下面是一个使用C++11的random库生成随机整数序列的示例代码:


#include <iostream>

#include <random>

int main()

{

  std::random_device rd; // 随机设备,用于生成种子

  std::mt19937 gen(rd()); // 随机数引擎,使用随机设备生成种子

  std::uniform_int_distribution<> dis(1, 6); // 均匀分布的整数分布器,范围为[1, 6]

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

    std::cout << dis(gen) << ' '; // 输出随机整数序列

  }

  std::cout << '\n';

  return 0;

}

上述代码使用了mt19937随机数引擎和uniform_int_distribution整数分布器生成范围为[1,6]的随机整数序列。

4. 总结

C++11的random库提供了生成伪随机数序列的功能,它包括三种不同的随机数引擎和多个分布器。使用这些工具,我们可以方便地生成随机数序列以及特定的分布类型,有利于编写更加实用的程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章