21xrx.com
2024-12-22 23:12:22 Sunday
登录
文章检索 我的文章 写文章
C++如何生成随机数组
2023-07-06 16:04:04 深夜i     --     --
C++ 生成 随机数组

在C++中,生成一个随机数组是一项基本的任务,而这通常需要依赖于伪随机数生成器。这种生成器的使用方法十分简单,只需调用库函数,就可以生成需要的随机数。

以下是几个简单的方法,可以用来生成随机数组。

1.使用rand函数生成随机数组

rand函数是C++标准库中一种常用的伪随机数生成器,通过调用rand()函数可以生成0到一个特定的大整数范围内的随机数。利用rand函数可实现简单的随机数生成。下面是一个使用rand函数来随机生成数组的例子:


#include <iostream>

#include <stdlib.h>

#include <time.h>

using namespace std;

int rand_number(int max) {

  return rand() % max;

}

int main() {

  srand(time(NULL));

  const int size = 10;

  int a[size];

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

    a[i] = rand_number(50);

  }

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

    cout << a[i] << " ";

  }

  return 0;

}

rand函数需要在使用之前调用srand函数来指定种子值,例如上面使用了当前时间作为种子值,可以为程序提供更好的随机性。

2.使用C++ STL中的生成函数

C++ STL提供了一些在标准头文件中定义的生成函数,可以用来生成随机数。例如,可以使用algorithm头文件中的generate函数生成随机数组:


#include <iostream>

#include <algorithm>

#include <vector>

#include <stdlib.h>

#include <time.h>

using namespace std;

int rand_number() {

  return rand() % 100;

}

int main() {

  srand(time(NULL));

  const int size = 10;

  vector<int> vec(size);

  generate(vec.begin(), vec.end(), rand_number);

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

    cout << vec[i] << " ";

  }

  return 0;

}

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

C++11中的随机数库提供了更强大的随机数生成功能,包括生成不同分布的随机数,例如正态分布,泊松分布等。使用这个库可以更好地控制生成的随机数的范围和分布。下面是一个使用C++11中随机数库生成随机数的例子:


#include <iostream>

#include <random>

using namespace std;

int main() {

  const int size = 10;

  vector<int> vec(size);

  random_device rd;

  mt19937 gen(rd());

  uniform_int_distribution<> dis(1, 100);

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

    vec[i] = dis(gen);

  }

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

    cout << vec[i] << " ";

  }

  return 0;

}

以上是三种生成随机数组的方法,可以根据自己的需求选择其中的一个进行实现。随机数组生成在算法和科技中都有广泛的应用,熟练掌握这一技能可以为日后的开发工作带来帮助。

  
  

评论区

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