21xrx.com
2024-11-08 21:13:06 Friday
登录
文章检索 我的文章 写文章
C++实现随机数生成,确保数值不重复
2023-07-09 17:32:29 深夜i     --     --
C++ 随机数生成 数值不重复

在C++中,随机数生成经常会用到。然而,在某些情况下,需要确保随机数的数值不会重复出现。本文介绍在C++中实现随机数生成并确保数值不重复的方法。

在C++中,可以使用rand()方法生成随机数。这个方法返回一个0到RAND_MAX范围内的随机整数。如果需要更大的范围,可以通过计算得到。为了确保数值不重复,需要使用数组来存储已经生成的数值。可以使用一个bool型的数组,用来表示这个数值是否已经生成过了。如果已经生成过,就再次生成。

下面是实现随机数生成并确保数值不重复的代码示例:


#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

int main() {

  const int MAX_NUM = 100;

  bool nums[MAX_NUM];

  int randNum;

  // 初始化数组

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

    nums[i] = false;

  }

  // 生成随机数

  srand(time(NULL));

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

    randNum = rand() % MAX_NUM;

    if (nums[randNum])   // 如果已经生成过 else {

      nums[randNum] = true;

      cout << randNum << " ";

    }

  }

  return 0;

}

上述代码中,先定义了一个常量MAX_NUM,它定义了随机数范围的最大值。然后,创建一个bool型的数组nums,用来存储已经生成的数值。在初始化数组时,将所有元素设置为false。

接下来,使用srand(time(NULL))方法初始化随机数生成器。然后,使用循环生成MAX_NUM个随机数。每次循环中,使用rand()方法生成随机数,并判断它是否已经生成过了。如果已经生成过,则重新生成随机数。否则,将它的值存入数组,并输出。

在实际使用中,需要根据具体的需求进行调整。如果生成的随机数需要连续存储到数组中,可以简化代码。此外,需要注意的一点是,如果随机数的范围非常大而生成的数值较少时,可能需要循环多次才能将所有数值生成完毕。

以上就是在C++中实现随机数生成并确保数值不重复的方法,希望对大家有所帮助。

  
  

评论区

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