21xrx.com
2024-12-22 20:14:47 Sunday
登录
文章检索 我的文章 写文章
C++数组随机数生成技巧
2023-07-09 18:38:59 深夜i     --     --
C++ 数组 随机数 生成 技巧

C++是一种强大的编程语言,其中数组是一种常用数据结构。在程序设计中,经常需要对数组进行随机数生成。通过随机数生成技巧,可以方便地获取各种复杂类型的随机数。在本文中,我们将介绍一些实用的C++数组随机数生成技巧。

1.使用随机数生成器

C++中的std::rand()函数可以产生随机数,其返回值为0到RAND_MAX之间的整数。为了得到整数数组中的随机数,我们可以使用如下代码:


int arr[10];

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

  arr[i] = rand() % 100; // 产生0到100之间的随机数

}

这段代码将10个0到100之间的随机数放入了arr数组中。为了让rand()函数产生更好的随机数,我们可以使用srand()函数,用于设置种子值。可以使用当前时间作为种子,如下所示:


srand((unsigned)time(NULL));

2.使用随机算法

C++ STL中的算法库中包含了关于数组的各种随机操作。其中,std::random_shuffle()函数可以打乱数组中的元素,如下所示:


int arr[10];

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

  arr[i] = i;

std::random_shuffle(arr, arr+10); // 打乱数组中元素

这段代码打乱了数组元素的排列顺序。另外,可以使用std::shuffle()函数指定随机数发生器。

3.使用C++11中的随机数库

C++11中新增加了std::random库,其中包含了各种随机数类和算法。通过包含 头文件,可以使用这些类和算法。可以使用std::uniform_int_distribution类产生均匀分布的整数序列,如下所示:


std::random_device rd; // 获取随机数发生器串口

std::mt19937 gen(rd()); // 根据随机数发生器串口生成随机数发生器实例

std::uniform_int_distribution<> dis(0, 99); // 产生0到99之间的均匀分布整数序列

int arr[10];

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

  arr[i] = dis(gen);

}

这段代码利用std::uniform_int_distribution类产生了10个0到99之间的随机数。

通过以上三个方法,可以方便地生成各种类型的随机数,并将其存储在C++数组中。通过灵活运用这些技巧,可以在程序设计中轻松应对各种需要随机数的场景。

  
  

评论区

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