21xrx.com
2024-11-22 02:13:29 Friday
登录
文章检索 我的文章 写文章
C++中如何生成一个区间范围的随机数字并进行排序?
2023-06-22 17:08:04 深夜i     --     --
C++ 生成随机数 区间范围 排序

在C++中生成一个区间范围内的随机数字并进行排序是很容易实现的。下面我们就来一步步讲解这个过程。

首先,我们需要C++的 头文件来生成随机数。我们使用uniform_int_distribution函数来限定随机数范围,先定义最大值和最小值:

int min_num = 10;

int max_num = 100;

随机数需要以某个seed为依据,才可以产生真正的随机数。我们可以使用当前时间来设置seed:

unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();

std::default_random_engine generator(seed);

std::uniform_int_distribution distribution(min_num, max_num);

这里的generator是随机数的生成器,distribution是随机数的范围限定器,这样我们就生成了在[min_num, max_num]之间的随机数。

接下来,我们将生成的随机数放入一个vector中:

vector nums;

for(int i = 0; i < 10; i++) { //随机生成10个数字

  nums.push_back(distribution(generator));

}

最后,我们可以使用sort函数来对vector中的数字进行排序:

sort(nums.begin(), nums.end());

完整的代码如下:

#include

#include

#include

#include

#include

using namespace std;

int main() {

  int min_num = 10;

  int max_num = 100;

  unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();

  std::default_random_engine generator(seed);

  std::uniform_int_distribution distribution(min_num, max_num);

  vector nums;

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

    nums.push_back(distribution(generator));

    cout << nums[i] << " ";

  }

  cout << endl;

  sort(nums.begin(), nums.end());

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

    cout << nums[i] << " ";

  }

  cout << endl;

  return 0;

}

以上就是如何在C++中生成一个区间范围的随机数字并进行排序的方法。

  
  

评论区

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